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 :