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