高分求救!!!Axis 1.4 客户端访问服务,出现问题了!!!

ma_liang 2008-11-27 04:13:02
目前使用Axis 1.4进行开发,使用donument/literal绑定方式,多参数传递问题已经解决,目前遇到了一个问题是:从wsdl生成java客户端和服务器端代码后,客户端中的一些类需要实现接口,而接口里的方法返回值为List类型,生成的方法返回值类Object[],因为Axis不支持集合类。如果将属性的get方法返回值改为List类型,从服务器端传递对象到客户端时,报序列化的错误,调试了很长时间仍然没有头绪,请高手帮忙!
实体类的wsdl描述如下:
<complexType name="WfWorkItemImpl">
<sequence>
<element name="id" nillable="true" type="xsd:string"/>
<element name="instCode" nillable="true" type="xsd:string"/>
<element name="lastStateChangeTime" nillable="true" type="xsd:dateTime"/>
<element name="masterUserIds" nillable="true" type="impl:ArrayOf_xsd_anyType"/>
</sequence>
</complexType>
masterUserIds属性在接口中的方法返回值类型为List,生成的客户端是Object[],如果将masterUserIds的get方法返回值类型改为List,客户端访问时会报下面的异常:
ERROR [axis.client.Call] Exception:
java.lang.NullPointerException
at org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:314)
at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
at org.apache.axis.client.Call.invoke(Call.java:2467)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
调试时发现,属性masterUserIds的get方法并没有走到,只是走到了set方法。为什么我把get方法的返回值类型改了后,会报异常??
...全文
354 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
boboo_2000_0 2008-12-02
  • 打赏
  • 举报
回复
支持2楼的说法,WSDL里面没有List类型。
ma_liang 2008-12-02
  • 打赏
  • 举报
回复
问题已经解决,情况是这样的,如果服务器端的实体类不使用序列化代码,则客户端会到一个默认的命名空间里找属性,这样的话在客户端的实体类中设置一下默认去哪个空间去值就可以了。
FJINS 2008-12-01
  • 打赏
  • 举报
回复
把list变为array再传
hongmaohouzi 2008-12-01
  • 打赏
  • 举报
回复
支持一下!
tiyuzhongxin789 2008-11-28
  • 打赏
  • 举报
回复
类型不对,得不到值...
ma_liang 2008-11-27
  • 打赏
  • 举报
回复
由wsdl生成的客户端实体类不能修改吗?Axis1.2还是可以的,难道Axis1.4校验的更加严格了吗?
C0150 2008-11-27
  • 打赏
  • 举报
回复
类型不对,得不到值,报空指针异常啊。

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧