我有一个使用Web服务的java Web服务客户端。使用WSDL2Java工具生成客户端。一切正常,直到Web服务提供商通过添加非必填字段来更改其中一个架构对象。当调用Web服务时,响应应该返回这些模式对象的数组,并且因为返回的对象有一个额外的字段 - 一切都会中断。根据我的理解,有一种方法可以在不破坏客户端应用程序的情况下进行此类更改 你能指出我如何解决这个问题的正确方向吗? 任何建议表示赞赏。 谢谢, 纳迪亚
答案 0 :(得分:2)
尝试为您的客户端尝试使用不同的绑定选项。如果我没有错,使用JAXBRI(od JiBX)应该解决问题。试试WSDL2Java -d jaxbri
默认为adb更多信息位于here
答案 1 :(得分:1)
Web服务是否符合WSDL? 也许你可以编写WSDL并添加非必需字段
或者WSDL是否已更改? 如果更改了WSDL,则需要通过WSDL2Java工具重新生成代码。
答案 2 :(得分:1)
这个问题通常很难解决,这就是面向客户端的XML模式不应经常更改的原因。您可以尝试禁用架构验证,但如果架构更改太多,您的客户端应用程序仍会爆炸。
推荐的企业方法(用行话:'松散耦合')是有一个单独的域对象层,并在生成的Java类和域对象之间进行映射。您只需在架构更改时更新映射,这不应该渗透到应用程序的各个层中。但是,每次架构更改时,您仍需要重新编译应用程序。