我有一个由 .net 应用程序提供的 SOAP Web 服务。有时我们会添加一些对象定义,但这些定义始终是可选的,并且从 XML/HTTP 的角度来看,表示这些字段的 xml 标记可以被省略,并且可以正常工作。这应该可以让网络服务的现有用户继续工作。
这正是它对几乎每个人都有效的方式。使用.net、python、ruby等的客户端都没有问题。但任何改变似乎都会破坏任何在 Java 中使用 Apache Axis2 的人。
似乎在每次请求时,Axis 都会检查端点 WSDL 并验证它是否与它所拥有的 stub 完全一样。如果不是,那么它会抛出异常。 (意外的子元素)
Axis 中是否有任何选项可以关闭此功能并让 Axis 假设其当前 stub 是正确的?
更新: 我还应该注意到,这对于使用 ColdFusion 的客户端来说是一个问题,因为它使用 Axis2
最佳答案
对于 Apache CXF,默认情况下,它也可能会由于它不理解的元素而引发异常。但是,您可以将“set-jaxb-validation-event-handler”的属性设置为“false” 在端点上,它将被忽略。
关于java - WSDL 更改后 Apache Axis 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5127678/