org.codehaus.xfire.fault.XFireFault: java.util.Date
下面是从别人那里转过来的:
在用XFire做的webservice测试项目中,有一个方法是传递java.util.Date参数,并返加在一个Date参数,
但这个方法在客户端调用的时候却报错了:
org.codehaus.xfire.fault.XFireFault: java.util.Date cannot be cast to javax.xml.datatype.XMLGregorianCalendar
在网上找了很多资料,但没有一个是说到点子上的,
我分析了一下,这个错误首先是由Date类型转换成XMLGregorianCalendar类型的时候报错,
在WSDL中,Date类型会被描述成XMLGregorianCalendar类型,于是我的解决思路便出来了。
只要我们调用方法的时候将日期类型先转换成XMLGregorianCalendar类型,返回值也相应的由XMLGregorianCalendar类型转回Date类型就行了。
webservice方法:
public Object testDate(Date date) {
//返回日期下一天
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DATE, 1);
return calendar.getTime();
}
//客户端调用:
Client client = WebServiceContainer.getInstance().getClientHashMap().get(
WebServiceContainer.getInstance().getMethodHashMap().get(methodName));
Object[] result = client.invoke("testDate", new Object[] { getXMLGregorianCalendar(date) });
//输出返回结果:
System.out.println(getDateFromXMLGregorianCalendar((XMLGregorianCalendar)returnObject[0]).toLocaleString());
//XMLGregorianCalendar 与 Date 转换的方法
public static javax.xml.datatype.XMLGregorianCalendar getXMLGregorianCalendar(
java.util.Date date) throws Exception {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
javax.xml.datatype.DatatypeFactory dtf = javax.xml.datatype.DatatypeFactory
.newInstance();
return dtf.newXMLGregorianCalendar(calendar.get(calendar.YEAR),
calendar.get(calendar.MONTH) + 1, calendar
.get(calendar.DAY_OF_MONTH), calendar
.get(calendar.HOUR), calendar.get(calendar.MINUTE),
calendar.get(calendar.SECOND), calendar
.get(calendar.MILLISECOND), calendar
.get(calendar.ZONE_OFFSET)
/ (1000 * 60));
}
public static Date getDateFromXMLGregorianCalendar(XMLGregorianCalendar cal) {
return cal.toGregorianCalendar().getTime();
}
分享到:
相关推荐
webservice中用到的jar,xfire-java5-1.2.6.jar,xfire-java5-1.2.6.jar,xfire-java5-1.2.6.jar,xfire-java5-1.2.6.jar
这篇博客“Java使用XFire调用WebService接口”显然是讨论如何利用XFire这个开源框架来与Web服务交互。 XFire是Apache CXF项目的前身,它提供了一种简单的方式来创建和消费SOAP Web服务。XFire的强项在于其轻量级和...
"Java 使用 XFire 调用 webService 接口" 在本文中,我们将学习如何使用 XFire 框架在 Java 中调用 webService 接口。XFIRE 是一个基于 Java 的开源框架,用于简化 Web 服务的开发和集成。下面,我们将通过一个简单...
Xfire基于Java API for XML Processing (JAXP) 和Java API for XML Binding (JAXB),使得开发者能够轻松地将Java对象转换为XML消息,反之亦然。Xfire支持SOAP、WSDL和UDDI等Web服务标准,同时还提供了与Spring框架的...
xfire客户端调用所需jar,找的时候很辛苦
XFire支持多种协议,包括SOAP、REST(Representational State Transfer)、JMS(Java Message Service)等,并且与Spring框架有良好的集成。 三、XFire环境搭建 首先,你需要在项目中引入XFire的依赖库。如果是...
进行WebService开发中所用到的xfire所有相关包如:xfire-jsr181-api-1.0-M1.jar、xfire-jaxws-1.2.6.jar、xfire-java5-1.2.6.jar、xfire-core-1.2.6.jar、xfire-annotations-1.2.6.jar、xfire-aegis-1.2.6.jar、...
在IT行业中,Web服务是一种广泛使用的通信协议,它允许不同应用程序之间进行数据交换。Java平台提供了多种实现Web服务的方法,其中Xfire是一个流行的框架,它简化了构建和使用Web服务的过程。本文将深入探讨如何使用...
Java使用XFire实现Web服务(WebServices)是Java开发中的一种常见技术,它允许应用程序通过网络交换数据。XFire是一个轻量级、高性能的框架,它简化了在Java应用程序中创建和消费Web服务的过程。本篇文章将深入探讨...
XFire内置了JAXB(Java Architecture for XML Binding)支持,可以自动将Java对象与XML文档进行转换,使得数据交换更为简单。 三、XFire客户端实现步骤 1. **创建服务接口** 首先,定义一个Java接口,这个接口...
Java Web服务(Xfire Demo)是面向开发者的一个实例教程,它主要展示了如何利用Xfire库来创建和使用Java Web服务。Xfire是一个轻量级、快速且易于使用的框架,专门用于构建基于SOAP(简单对象访问协议)的Web服务。在...
在IT行业中,Web服务已经成为不同系统间通信的重要手段,而XFire则是Java平台上一种流行且强大的Web服务实现框架。XFire,全称为XFire SOAP RPC,它提供了一种简单的方式来创建和消费Web服务。本文将深入探讨XFire...
XFire是Java实现WebService的一个框架,可以完成webservice服务的发布以及对发布接口的调用的全部jar包
在Java开发中,有时我们需要与外部服务进行交互,如发送短信、获取数据等,这时就会用到Web Service。本文将详细介绍如何使用HttpClient和XFire这两种不同的库来调用Web Service,特别是针对短信接口的调用。 首先...
Java XFire调用WebService是一种在Java应用程序中与远程服务交互的方式。XFire是Apache CXF项目的前身,它是一个用于构建和开发Web服务的框架。在本文中,我们将深入探讨如何使用Java XFire来调用本地及远程的...
通过使用Java注解,xFire使得开发者能够快速地将Java类转换为Web服务,反之亦然。这极大地简化了Web服务的开发过程,降低了学习曲线。 在使用xFire时,首先要进行基本的环境配置,包括引入必要的库文件和设置相关的...
XFire的出现,使得开发人员能够轻松地将现有的Java对象转换为Web服务,反之亦然,极大地简化了Web服务的开发流程。 一、XFire的核心特性 1. **轻量级架构**:XFire基于Java语言,其设计目标是轻便、高效,不依赖于...
在IT行业中,Web服务是一种广泛使用的通信协议,它允许不同应用程序之间进行数据交换。Xfire是一款曾经流行的开源Java框架,用于构建和消费Web服务。在本文中,我们将深入探讨Xfire调用Web服务时遇到的参数传递问题...
### 使用XFire在Java中开发简单的Web Services #### 背景介绍 随着网络技术的发展,Web Services作为一种标准的企业间通信方式,越来越受到重视。它允许应用程序之间通过网络进行交互,不受平台限制。Java作为主流...
1. **Java Web Service**:Java Web Service是一种基于开放标准(如SOAP、WSDL和UDDI)的应用程序,使得不同平台上的应用程序可以相互通信。在这个项目中,Java被用来创建服务端的Web服务。 2. **XFire**:XFire是...