Pregunta

estamos migrando desde WebLogic servicios web para la primavera-WS (1.5.x). En la actualidad existe un problema que nos enfrentamos:

Tenemos que pasar un objeto de contexto (WLS en que se pasa como elemento SOAP Header) a otros servicios que todavía vigentes en el WLS desde el servicio de Primavera-WS potencia. El elemento de cabecera todavía está formulado en el lado del cliente y los de nueva creación (WS Primavera-WS) solo debe pasarlo a otros servicios.

Me puedo imaginar cómo sería pasado el elemento personalizado: anular el doWithMessage (mensaje WebServiceMessage) Método ...

¿Hay una manera de generar el WSDL con la ayuda de DefaultWsdl11Definition para contener ese elemento encabezado personalizado? Vea el ejemplo:

<wsdl:operation name="GetSomeInformation">
    <soap:operation
        soapAction="http://www.dummyservice.com/InformationService/GetSomeInformation" />
    <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="ctx:ServiceContextMessage" part="serviceContext" use="literal" />
    </wsdl:input>
    <wsdl:output>
        <soap:body use="literal" />
    </wsdl:output>
    <wsdl:fault name="Error">
        <soap:fault name="Error" use="literal" />
    </wsdl:fault>
</wsdl:operation>

Gracias por la ayuda

¿Fue útil?

Solución

Nos encontramos con un problema similar en mi proyecto. Comprobar en extender SuffixBasedPortTypesProvider, SuffixBasedMessagesProvider y Soap11Provider. Usamos el InliningXsdSchemaTypesProvider importar el esquema que utilizamos para construir el WSDL. Si ejecuta la generación de WSDL a través del depurador obtendrá la caída de cómo funciona. El código de primavera es fácil de seguir y ampliar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top