我们有一个WSDL引用了一个复杂的XML模式。我们不想创建一个完整的JAX-B绑定,而是希望获得像DOMSource或SOAPElement等“unbinded”的XML。
在过去,我们手动更改了架构并交换了xs:any
的特定消息类型。但我们对此感到非常不满。
通常,我们可以使用普通的Web服务注释:
@WebServiceProvider(serviceName = "AbcWebService", portName = "AbcWebServicePort", targetNamespace = "urn:bla.bla", wsdlLocation = "AbcService.wsdl")
@ServiceMode(Mode.MESSAGE)
public class AbcWebService implements Provider<SOAPMessage> {
@Override
public SOAPMessage invoke(SOAPMessage request) { /* ... */ }
}
但这可以通过一种Java方法为所有操作服务,我们必须自己调度所有ws操作。
相反,我们希望wsimport为每个操作生成一个Java方法,但仍然使用一些XML表示(DOMSource,SOAPElement等)而不是JAX-B绑定类。
知道如何实现这个目标吗?