Erro webservice: Referência de objeto não definida para uma instância de um objeto. Resolvido

0 respostas
I

Pessoal
Estou usando axis para enviar requisicoes a um webservices .net e estou recebendo o erro “Referência de objeto não definida para uma instância de um objeto.” Pela msg SOAP da pra perceber que estao sendo usados duas referencias de namespaces, talvez por isso o erro. O que eu nao consigo fazer no axis eh setar a mesma referencia do namespace que esta sendo usado no header para o body da msg. Alguem sabe como posso fazer isso?

Mensagem soap enviada ao ws:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<soapenv:Header>
		<ns1:PayloadInfo Username="xpto" Password="1234" IDParceiro="4321"
			soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
			soapenv:mustUnderstand="0"
			xmlns:ns1="http://www.cmnet/xmlwebservices2/"/>
	</soapenv:Header>
	<soapenv:Body>
		<ns2:xmlPing xmlns:ns2="http://www.cmnet/xmlwebservices2/">
			<ns2:xml soapenv:encodingStyle="UTF-8">
				<ns2:OTA_PingRQ Version="1.0" EchoToken="1234"
					TimeStamp="2004-01-01T08:00:00" Target="Test"
					PrimaryLangID="pt-BR" xmlns="http://www.opentravel.org/OTA/2003/05"/>
			</ns2:xml>
		</ns2:xmlPing>
	</soapenv:Body>
</soapenv:Envelope>

Setando namespaces:

//header
SOAPHeaderElement payloadInfo = new SOAPHeaderElement( "", 
		"PayloadInfo" );
payloadInfo.setNamespaceURI("http://www.cmnet/xmlwebservices2/");

//body
SOAPBodyElement metodo = new SOAPBodyElement();
element.setNamespaceURI(payloadInfo.getNamespaceURI());

Faltava um atributo(xlmns) dento da msg do body :

Criado 2 de outubro de 2008
Respostas 0
Participantes 1