jax-ws: как получить дескриптор начала / конца обработки входящего мыльного сообщения

StackOverflow https://stackoverflow.com/questions/1808032

  •  05-07-2019
  •  | 
  •  

Вопрос

Ситуация: веб-служба jax-ws на сервере приложений Weblogic; Первая разработка wsdl, настройки jaxb во внешнем файле привязки.

Я хотел бы получить дескриптор фактического контекста jaxb, который будет обрабатывать входящее XML-сообщение soap, до того, как было разархивировано в объекты java.

Тогда я бы хотел получить демаршаллер этого jaxb-контекста - тот, который фактически будет использоваться во время демаршаллинга. Затем установите некоторые свойства этого демаршаллера (например, listener и idresolver).

Это было полезно?

Решение

Новый @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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top