oi galera
to precisando de ajuda, to com uma batata quente na mao e não sei resolver
minha empresa precisa disponibilizar um web service para filiais conectarem nela.
Soh que cada filial vai desenvolver na linguagem que for conveniente.
Eu to usando o Axis 1.4 para gerar, mas eu soh consigo acessar o web service se gerar o cliente pelo proprio axis. Mas nem todas filiais usam o axis, então não posso prender elas nisso.
Dai criei esse metodo consumidor
[code] public class ConsumidorWebService
{
private int codigoStatus;
private String xmlResposta;
public int getCodigoStatus()
{
return codigoStatus;
}
public String getXmlResposta()
{
return xmlResposta;
}
public String invocarMetodoWebService( String urlWebService, String soapAction, String xml )
throws UnsupportedEncodingException, IOException
{
PostMethod postMethod = null;
RequestEntity requestEntity;
HttpClient httpClient;
try
{
postMethod = new PostMethod( urlWebService );
requestEntity = new StringRequestEntity( xml, "text/xml", "utf-8" );
postMethod.setRequestEntity( requestEntity );
postMethod.setRequestHeader( "SOAPAction", soapAction );
httpClient = new HttpClient();
codigoStatus = httpClient.executeMethod( postMethod );
xmlResposta = postMethod.getResponseBodyAsString();
}
finally
{
if( postMethod != null )
{
postMethod.releaseConnection();
postMethod = null;
}
requestEntity = null;
httpClient = null;
}
return xmlResposta;
}
}[/code]
eu to invocando assim:
String xmlRetorno = consumidorWebService.invocarMetodoWebService( this.urlWebService,"", xmlEnvelope.toString() );
repara que o metodo acima, eu tento mandar String vazia porque no meu wsdl não aparece nada no soapAction. O Axis ta gerando sem ele…
[code]<wsdl:operation name=“envioBancario”>
[b]<wsdlsoap:operation soapAction=""/>[/b]
<wsdl:input name="envioBancarioRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.wrt.com.br/wsdl/EnvioBancario/envioBancario" use="encoded"/>
</wsdl:input>
<wsdl:output name="envioBancarioResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.wrt.com.br/wsdl/EnvioBancario/envioBancario" use="encoded"/>
</wsdl:output>
</wsdl:operation>[/code]
ele não deveria ter vindo preenchido?
porque o axis nao preenche?
dai o meu cliente nem chega no web service e devolve o erro 500
e o seguinte erro
org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.