情况:Weblogic appserver上的jax-ws Web服务; wsdl首次开发,在外部绑定文件中进行jaxb自定义。
我想获得一个实际的jaxb上下文句柄,它将处理传入的soap xml消息,之后将其解组为java对象。
然后我想获取这个jaxb上下文的unmarshaller - 实际上将在解组期间使用的那个。然后设置这个unmarshaller的一些属性(例如监听器和idresolver)。
答案 0 :(得分:0)
新的@UsesJAXBContex注释JAXBContextFactoryin jaxws 2.1.5 - jaxb 2.2可能就是我需要的。 但是weblogic 10.3.1使用jaxws 2.1.1,jaxb 2.1.3。
另一种解决方案是使用:
@WebServiceProvider(portName = "Port", serviceName = "Service", targetNamespace = "tns", wsdlLocation = "/wsdls/x.wsdl")
@BindingType(value = "http://schemas.xmlsoap.org/wsdl/soap/http")
@ServiceMode(value = javax.xml.ws.Service.Mode.MESSAGE)
public class ServiceProvider implements Provider<SOAPMessage>
这样可以访问soap xml消息。我仍然需要弄清楚方法名称的位置。
而不是:
@WebService(portName = "Port", serviceName = "Service", targetNamespace = "tns",
wsdlLocation = "/wsdls/x.wsdl", endpointInterface = "tns.PortType")
@BindingType("http://schemas.xmlsoap.org/wsdl/soap/http")
public class ServicePort implements PortType