ConnectException ao acessar webservice

Caros,

Estou com o seguinte problema, preciso acessar um Web Service para pegar uns dados.
Quanto tento acessar pela aplicação, da a exceção abaixo. Mas quando acesso pelo browser os dados vem normalmente.
Alguma ideia do que pode ser?

[code]
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.net.ConnectException: Tempo esgotado para conexão
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:java.net.ConnectException: Tempo esgotado para conexão
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:176)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
at java.net.Socket.connect(Socket.java:546)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:153)
at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:120)
at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at servico.WsSSPDSSoapBindingStub.getServidor(WsSSPDSSoapBindingStub.java:248)
at facade.Teste.main(Teste.java:37)

{http://xml.apache.org/axis/}hostname:s2ptic4020

org.apache.axis.AxisFault:; nested exception is:
java.net.ConnectException: Tempo esgotado para conexão
java.net.ConnectException: Tempo esgotado para conexão
at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:154)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at servico.WsSSPDSSoapBindingStub.getServidor(WsSSPDSSoapBindingStub.java:248)
at facade.Teste.main(Teste.java:37)
Caused by: java.net.ConnectException: Tempo esgotado para conexão
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:176)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
at java.net.Socket.connect(Socket.java:546)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:153)
at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:120)
at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
… 11 more

Exception in thread “main” java.lang.NullPointerException
at facade.Teste.main(Teste.java:45)[/code]

Eu acho que podem ser duas coisas :

  • Pelo browser o proxy está configurado, logo você consegue acessar o endereço:

    Solução:

    • Liberar o endereço do ws para acesso direto
    • Enviar os dados do proxy via parametros para vm (-d da vida)
  • O timeout do axis se não me engano é de 60 segundos, caso não especificado

    Solução:

    • Setar no stub o timeout

Eduardo,

Pelo browser que tem no eclipse eu também consigo acessar e ver os dados, será que é proxy mesmo?
Já alterei o timeout e continua o mesmo problema.
Como eu envio os dados do proxy por parametro?

Obrigado

Tenta passando os parametros :

-Dhttp.proxyHost=proxy.seudominio.com.br
-Dhttp.proxyPort=porta
-Dhttp.proxyAuthType=basic
-Dhttp.proxyUser=usuario
-Dhttp.proxyPassword=senha

Onde seto esses parametros, no JAVA_OPTS?

JAVA_OPTS="-Dhttp.proxyHost=proxy.seudominio.com.br -Dhttp.proxyAuthType=basic"

Assim?

Obrigado

Se você estiver usando eclipse vai em
Run configurations ->
acha o seu servidor de aplicacao em servers ->
Arguments ->
vm arguments ->
-Dprogram.name=run.bat -Xms256m -Xmx1024m -XX:MaxPermSize=512m -Dhttp.proxyHost=proxy.seudominio.com.br -Dhttp.proxyAuthType=basic

Ou entao no teste unitário mesmo roda a primeira vez sem nada o eclipse gera um dae depois :
Run configurations ->
Encontra seu test ->
Arguments ->
vm arguments ->
-Dhttp.proxyHost=proxy.seudominio.com.br -Dhttp.proxyAuthType=basic

Eduardo,

Coloquei os parametros, mas continua dando o mesmo problema… timeout!

25/01/2011 10:56:13 org.apache.axis.utils.JavaUtils isAttachmentSupported WARNING: Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled. org.apache.axis.AxisFault:; nested exception is: java.net.ConnectException: Connection timed out

consegui resolver o problema, coloquei essas duas linhas:

System.setProperty("http.proxyHost", "IP"); System.setProperty("http.proxyPort", "8080");

E funcionou.

Obrigado Eduardo pela ajuda.