ConnectException ao acessar webservice

7 respostas
G

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

7 Respostas

E

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
G

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

E

Tenta passando os parametros :

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

G

Onde seto esses parametros, no JAVA_OPTS?

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

Assim?

Obrigado

E

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

G

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

G

consegui resolver o problema, coloquei essas duas linhas:

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

E funcionou.

Obrigado Eduardo pela ajuda.

Criado 24 de janeiro de 2011
Ultima resposta 25 de jan. de 2011
Respostas 7
Participantes 2