axis2 MessageReceiverInOut

0 respostas
C

Olá,

Estou a desenvolver um web service.
Gerei o skeleton do WS a partir do wsdl com a ferramenta wsdl2java (axis).

Tenho 2 classes principais e um interface, para além dos objectos gerados a partir dos schemas.

Neste momento não necessito de utilizar as classes e quero aplicar uma transformação à mensagem XML recebida (aplicando um XSL) para obter um outro XML.
Da mesma forma, não quero utilizar a serialização do objecto de retorno do método mas sim compor o meu próprio SOAPEnvelope (de acordo com o schema de resposta, claro).
Ou seja, na classe MyService_MessageReceiverInOut

code
if(“ACCAO”.equals(methodName)){

//chamar o skeleton para tratar o XML recebido
            Object obj = skel.accao(msgContext.getEnvelope().getBody().toStringWithConsume());
                    
            //método original
	//envelope = toEnvelope(getSOAPFactory(msgContext), obj, false);
	
	//o método myToEnvelope devolve o SOAPEnvelope com a mensagem pretendida
	envelope = myToEnvelope(msgContext);

}

newMsgContext.setEnvelope(envelope);

()

O problema é que obtenho o seguinte log do Apache:

26/Fev/2008 10:52:00 com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection post
WARNING: SAAJ0014: Invalid reply message. Content length of reply was zero.

No entanto, tanto o conteúdo do envelope como do newMsgContext tem o XML pretendido.

Alguém tem ideias do que poderá ser?
Desde já agradeço.

Cumprimentos,
Daniel

Criado 26 de fevereiro de 2008
Respostas 0
Participantes 1