最近弄一个领导的平台,要集成众系统的部分功能。开始研究axis2,开始跟着站内一些先驱们的足迹,慢慢练习axis2一些基础东西。到了实际的应用中,问题那是成批的来。如不支持发布spring的事务代理子类等等。过程不多说了,直入主题:发布方法中参数含有java.util.Date类型(包括JavaBean中的java.util.Date属性)会报“date string can not be less than 19 charactors.”异常。经过大半天的折腾,终于看到在Apache的BUG页上看到一个解决方案.url:[url]http://issues.apache.org/jira/browse/AXIS2-4075[/url]
不过我下载它的aar包并不能运行起来,还是报一样的错误。最后自己写了一个是OK的。
具体:
wsdl的处理还是将参数的type映射为:xs:dateTime(注意大小写)
return的类型可以不用修改(返回yyyy-mm-dd 00:00:00格式)。
采用service.xml发布服务,如下:
利用eclipse插件生成代码,测试OK!
不过我下载它的aar包并不能运行起来,还是报一样的错误。最后自己写了一个是OK的。
具体:
wsdl的处理还是将参数的type映射为:xs:dateTime(注意大小写)
return的类型可以不用修改(返回yyyy-mm-dd 00:00:00格式)。
采用service.xml发布服务,如下:
<service name="DateService">
<parameter name="ServiceClass">server.DateServer</parameter>
<operation name="getCurrentTime">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</operation>
</service>
import java.util.Date;
public class DateServer {
public Date getCurrentTime(Date date) {
return date;
}
}
利用eclipse插件生成代码,测试OK!