我正在使用一个轴1.4 Web服务,该服务返回我希望使用jaxb注释解组到我的域对象中的soap响应。我的初始测试工作得很好,直到一些返回的消息有multiRef元素。使用multiRef编组的对象在我的客户端注释模型对象中显示为null。
我的问题是JAXB是否支持使用multiRef元素解组soap响应?如果是这样,怎么样?如果没有,是否有人知道在java中将轴1.4肥皂响应解组到我的域模型中的更好方法?
答案 0 :(得分:1)
在Web服务的情况下,JAXB并不是单独的,而是作为ws客户端框架的数据绑定部分。所以我假设你的问题是如何在轴1.4中使用JAXB作为数据绑定。一般来说,我认为没有简单的方法可以实现这一点,请查看轴用户邮件列表中的以下主题:Specify JAXB generated complex types to Axis web service。
如果您可以使用axis2升级到使用Web服务,那么它应该更容易,因为axis2带有可插拔数据绑定架构,包括集成的jaxb实现。
答案 1 :(得分:0)
如果Web服务的Axis端也在您的控制之下,那么您可以将属性org.apache.axis.AxisEngine.PROP_DOMULTIREFS
设置为false。在这种情况下,Axis不应该创建multiRef元素。我在客户端Axis上使用过这个属性,希望它能以同样的方式在服务器端工作。
答案 2 :(得分:0)
如果您正在处理MultiREF,那么您可能正在使用RPC服务。 JAXB适用于Document样式的Web服务。
为了使用RPC样式服务,请不要使用任何外部绑定,如JAXB,JIBX或
使用普通的JAX-RPC,wsdl2java Ant任务可用于生成存根,并指定 nobinding选项。