Erro axis

1 resposta
J

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
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;
	}
    }

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....

<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>

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.

1 Resposta

J

ahh um detalhe, ele da erro 500 como se tivesse chegado no web service, e ao debugar o web service nem chega a ser invocado. É como se não localizasse o web service

Criado 30 de junho de 2009
Ultima resposta 30 de jun. de 2009
Respostas 1
Participantes 1