2014-02-18 9 views
0

Я хочу добавить заголовок мыла в ответ на запрос мыла. Я много гугл. Я нашел это, чтобы добавить обработчик и определить его в module.xml, но у меня есть встроенная веб-служба AXIS2 в веб-приложении Java, поэтому у меня нет модуля .xml или axis2.xml. В моем проекте есть только services.xml, который генерируется autonenerated с помощью axis2 lib при генерации кода на стороне сервера axis2.Добавление SOAPHeader в ответ в AXIS2 webservice

В WSDL, операция определяется следующим образом:

 <operation name="XYZ"> 
      <soap:operation soapAction="SOAP_HTTP#XYZ" /> 
      <input> 
       <soap:body use="literal" parts="XYZ" 
        namespace="http://www.ecma-international.org/standards...." /> 
       <soap:header message="wss:header" part="header" use="literal"></soap:header> 
      </input> 
      <output> 
       <soap:body use="literal" parts="XYZResponse" 
        namespace="http://www.ecma-international.org/standards..." /> 
       <soap:header message="wss:header" part="header" use="literal"></soap:header> 
      </output> 
      <fault name="FaultName"> 
       <soap:fault use="literal" name="FaultName" 
        namespace="http://www.ecma-international.org/standards..." /> 
      </fault> 
     </operation> 

Я могу успешно добавить SOAPHeader в запросе, а также прочитать заголовки из запроса и ответа как. Но я не могу добавить SOAPHeader «заголовок» в ответ SOAP.

Просьба представить свои предложения о том, как добавить заголовок мыла в ответ SOAP?

Спасибо.

ответ

0

Вы должны добавить обработчик с помощью нового модуля в Axis2

Рукоятки вызвать метод получения контекста ответного сообщения, и вы можете добавить заголовки там.

Смотрите здесь: http://wangxiangblog.blogspot.in/2011/01/develop-web-service-with-axis2-7-add.html

Чтобы получить заголовки запроса

В обработчике

invoke(MessageContext msgContext) - This is response message context 

    MessageContext reqMsgCtx = MessageContext.getCurrentMessageContext(); - This gives request message context 
    //Get header with following code 
    SOAPEnvelope env = reqMsgCtx.getEnvelope(); 
    SOAPHeader aSoapHeader = env.getHeader(); 

// Ваш код для добавления headerblocks в заголовке сообщения ответа

Смежные вопросы