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
xfire客户端调用所需jar,找的时候很辛苦
java webservice基于xfire实例,该文档时继续java的 Xfire的webservie实例.
进行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、...
XFire是Java实现WebService的一个框架,可以完成webservice服务的发布以及对发布接口的调用的全部jar包
XFire Java Web Service
这是一个完整的Xfire实现的java webservices 的demo,初学者可以很轻松的学会使用!
java使用XFire调用webService接口
xfire客户端生成自动生成java代码调用
因与cxf包xmlschema-core-*.jar 冲突 故重新打包 XmlSchema-1.1.jar 源码修改原类径的方法来重新打包避免冲突 源码放在javas.rar文件夹中 org.codehaus.xfire.wsdl11.parser.SchemaInfo org.codehaus.xfire....
用java通过xfire框架实现ws,实现正向生成wsdl文件,并由wsdl逆向生成java ws客户端代码 测试输入:http://localhost:8080/webservice-xfire/services/CalculatorService?wsdl
java xfire调用webservice 调用本地自己写的webService 调用网站webxml.com.cn的webservice
因与cxf包xmlschema-core-*.jar 冲突 故重新打包 XmlSchema-1.1.jar 源码修改原类径的方法来重新打包避免冲突 源码放在javas.rar文件夹中 org.codehaus.xfire.wsdl11.parser.SchemaInfo org.codehaus.xfire....
xfire-aegis-1.2.6.jar,xfire-annotations-1.2.6.jar,xfire-core-1.2.6.jar,xfire-java5-1.2.6.jar,xfire-jaxb2-1.2.6.jar,xfire-jaxws-1.2.6.jar,xfire-jsr181-api-1.0-M1.jar,xfire-spring-1.2.6.jar
NULL 博文链接:https://fenghaoo.iteye.com/blog/434000
xfire简单实现webservice服务端创建与客户端,实现方法用的代理调用的,不需要服务端的接口。
activation.jar commons-logging.jar jdom-1.0.jar spring.jar spring-mock.jar stax-api-1.0.1.jar ...xfire-java5-1.2.2.jar xfire-jsr181-api-1.0-M1.jar xfire-spring-1.2.2.jar xfire-xmlbeans-1.2.2.jar
Java中使用XFire开发简单的WebServices.pdf
因与cxf包xmlschema-core-*.jar 冲突 故重新打包 XmlSchema-1.1.jar 源码修改原类径的方法来重新打包避免冲突 源码放在javas.rar文件夹中 org.codehaus.xfire.wsdl11.parser.SchemaInfo org.codehaus.xfire....
Xfire开发webservice与javaweb集成实例服务端发布、 客户端调用实例源码