[RESOLVIDO] SOAP - Autenticação Preemptiva

olá!

Estou tentando conectar em um webservice que utiliza autenticação preemptiva, com usuário e senha.

Cheguei até esse código abaixo mas sempre retorna o erro informando que a conexão precisa de autenticação.

Alguma dica de como resolver esse problema?

[code]StringBuilder soapMessage = new StringBuilder();
soapMessage.append("<?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?>")
.append("<soapenv:Envelope xmlns:soapenv=“http://schemas.xmlsoap.org/soap/envelope/” xmlns:xsd=“http://www.agrotis.com.br/ReceitaAgrowin/xsd/">")
.append(”<soapenv:Header/>")
.append("<soapenv:Body>")
.append("<xsd:atualizarClienteEnvio/>")
.append("</soapenv:Body>")
.append("</soapenv:Envelope>");

    org.apache.axis.soap.MessageFactoryImpl impl = new org.apache.axis.soap.MessageFactoryImpl();

    MimeHeaders header = new MimeHeaders();
    header.addHeader(&quot;Content-Type&quot;, &quot;application/soap+xml&quot;);

    String authorization = Base64Coder.encodeString(&quot;usuario:senha&quot;);
    header.addHeader(&quot;Authorization&quot;, &quot;Basic &quot; + authorization);

    SOAPMessage message = impl.createMessage(header,
            new ByteArrayInputStream(soapMessage.toString().getBytes()));

    SOAPConnectionImpl conn = new SOAPConnectionImpl();
    URL url = new URL(&quot;http://servidor:porta/WS/Utilitarios&quot;);
    SOAPMessage response = conn.call(message, url);
    conn.close();

    StringWriter sw = new StringWriter();
    Source source = new DOMSource(
            response.getSOAPPart().getEnvelope().getBody().getFirstChild().getFirstChild());
    TransformerFactory.newInstance().newTransformer().transform(
            source, new StreamResult(sw));

    System.out.println(&quot;========================================================&quot;);
    System.out.println(response.getSOAPBody().getFault().getFaultString());
    System.out.println(sw.toString());
    System.out.println(&quot;========================================================&quot;);[/code]

Retorna o erro:

[quote]========================================================
(407)Proxy Authentication Required
<?xml version="1.0" encoding="UTF-8"?><faultcode/>
========================================================[/quote]

Obs.: esto usando o framework Axis1.4

consegui resolver meu problema, porém, de outra forma.

Utilizei o eclipse e gerei as classes de acesso ao webservice importando o wsdl.

Dentro do stub, setei o usuário e senha:

org.apache.axis.client.Call _call = createCall(); .... .... _call.setUsername("--usuario--"); _call.setPassword("--senha--");

E a chamada ao serviço ficou assim:

Servico util = new ServicoLocator(); ServicoRemote remote = util.getServico(); AtualizarClienteEnvio envio = new AtualizarClienteEnvio(); AtualizarClienteRetorno retorno = remote.atualizarCliente(envio); System.out.println(retorno.getMensagem());

vlw!