我必须维护一个 Java EE 5 Web 应用程序。此应用程序的一部分是通过 Web 服务(使用 WSDL 合同)交换消息。wsdl 用于通过 Eclipse wsdl2Java 生成 Java 类(我认为它使用 Axis)
现在我必须实现一个修改,我们通过 Web 服务调用的服务器必须能够以异步方式响应。事实上,服务器不会立即响应 SOAP 消息响应,但会在一段时间后调用客户端(我们的 Web 应用程序)公开的 Web 服务,将第一次调用的 SOAP 消息响应作为第二次调用的字段(参数)传递Web 服务调用。
然后,客户端将 SOAP 响应(或 XML)保存在一个文件中。
有没有办法使用这个 XML 或 SOAP 消息文件填充已经生成的 Java 类?我的意思是一种模拟服务器直接响应的方法(提供 Axis 绑定存根)
我也尝试过使用 JAXB(将 XML 绑定到 JAVA),但由于 SOAP 消息响应很复杂,所以当我调用 JAXBContext 时收到错误消息:
CodPrestazione does not have a no-arg default constructor
因为这个类是 wsdl2Java 生成的枚举类。
有没有办法在不注释或修改java类的情况下绕过这个错误(这个类是生成的,所以我将被迫在每次重新生成时修改这个类)?
- 使用保存的 SOAP 消息文件(或 XML)的最佳方式是什么?或者,如何使用 Axis 1.3 反序列化 SOAP?