Erro ao consumir web service

9 respostas
W

Olá pessoal.

Estou estudando web services e ao tentar consumir um publicado na internet, deu o seguinte erro:

AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode: 
 faultString: java.net.ConnectException: Connection timed out: connect
 faultActor: 
 faultNode: 
 faultDetail: 
	{http://xml.apache.org/axis/}stackTrace:java.net.ConnectException: Connection timed out: connect
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
	at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
	at java.net.Socket.connect(Socket.java:452)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:324)
	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:183)
	at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:390)
	at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:137)
	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:2765)
	at org.apache.axis.client.Call.invoke(Call.java:2748)
	at org.apache.axis.client.Call.invoke(Call.java:2424)
	at org.apache.axis.client.Call.invoke(Call.java:2347)
	at org.apache.axis.client.Call.invoke(Call.java:1804)
	at NET.webserviceX.www.ISBNSoapStub.getISBNInformation(ISBNSoapStub.java:104)
	at cliente.consultaISBN(cliente.java:32)
	at cliente.main(cliente.java:23)

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

java.net.ConnectException: Connection timed out: connect
	at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
	at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:146)
	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:2765)
	at org.apache.axis.client.Call.invoke(Call.java:2748)
	at org.apache.axis.client.Call.invoke(Call.java:2424)
	at org.apache.axis.client.Call.invoke(Call.java:2347)
	at org.apache.axis.client.Call.invoke(Call.java:1804)
	at NET.webserviceX.www.ISBNSoapStub.getISBNInformation(ISBNSoapStub.java:104)
	at cliente.consultaISBN(cliente.java:32)
	at cliente.main(cliente.java:23)
Caused by: java.net.ConnectException: Connection timed out: connect
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
	at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
	at java.net.Socket.connect(Socket.java:452)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:324)
	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:183)
	at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:390)
	at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:137)
	... 12 more

quando crio um cliente para um ws q eu mesmo fiz e está em minha máquina funciona perfeitamente.
Será que está dando algum problema pq aqui na empresa pra acessar a web necessita do proxy? Se for isso, como resolvo?

web service: http://www.webservicex.com/isbn.asmx (achei no www.xmethods.com)
meu código:

ISBN servico = new ISBNLocator();
		ISBNSoap isbn = servico.getISBNSoap();
		
		String descricao = isbn.getISBNInformation("853521321X");
		
		System.out.println(descricao);

Alguém pode ajudar?
Abraços!

9 Respostas

B

não sei como se configura o proxy não… mas é este sim o problema!

W

pois é… j´pa tentei um monte de coisas, mas nada funciona!!
:cry:

B

_call.setProperty(org.apache.axis.transport.http.HTTPConstants.HEADER_PROXY_AUTHORIZATION,Boolean.TRUE);

tenta algo do tipo!

se num der
procura no google, no ws.apache.org/axis por org.apache.axis.transport.http.HTTPConstants.HEADER_PROXY_AUTHORIZATION

W

valeu!! vou tentar e posto aqui!
abraços!

W

Deu erro.
Tá dando erro ao compilar. não tá reconhecendo o objeto “_call”

_call.setProperty(org.apache.axis.transport.http.HTTPConstants.HEADER_PROXY_AUTHORIZATION,Boolean.TRUE);

O q devo fazer?
Ainda estou apanhando bastante de java!!

abraços.

B

rs…
como você gerou o cliente WebService??

W

Olá…

Gerei através do wsdl, utilizando o wdsl2java.
testei em casa e está funcionando perfeitamente. aqui no trabalho é q não funciona pq dá o problema do proxy.
tenho q resolver isso!!
já procurei aqui no forum e no google. testei várais coisas e nada!!

abraços.

B
<blockquote>…

if (super.cachedEndpoint == null) {

throw new org.apache.axis.NoEndPointException();

}

org.apache.axis.client.Call _call = createCall();

_call.setOperation(_operations[4]);

_call.setUseSOAPAction(true);

_call.setSOAPActionURI("");

_call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE); <<< um exemplo de parametro…

_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);

_call.setOperationName(new javax.xml.namespace.QName(“<a href="http://webservices.sia.vixteam.com.br">http://webservices.sia.vixteam.com.br</a>”, “incluirEspecialista”));
setRequestHeaders(_call);
    setAttachments(_call);


procura como se utiliza para proxy!

R

“wilder_lopes”:
Olá…

Gerei através do wsdl, utilizando o wdsl2java.
testei em casa e está funcionando perfeitamente. aqui no trabalho é q não funciona pq dá o problema do proxy.
tenho q resolver isso!!
já procurei aqui no forum e no google. testei várais coisas e nada!!

abraços.

Olha só… no seu trabalho tem firewall? O IDEAL é você solicitar que o servidor que você está usando para consultar o webservice consiga acessar a internet.
Já andei pesquisando também e o uso de “classes proxys” não são aconselhados, principalmente em ambiente de produção.

Abraços!

Criado 11 de maio de 2005
Ultima resposta 20 de jun. de 2005
Respostas 9
Participantes 3