XFire

6 respostas
H

Dae pessoal!!

estou tentando consumir um webService com o XFire, porém quando eu executo o comando abaixo, ele lença um erro de timed out…

abaixo esta o erro:

- java.net.ConnectException: Connection timed out: connect
org.codehaus.xfire.fault.XFireFault: Couldn't send message.
	at org.codehaus.xfire.fault.XFireFault.createFault(XFireFault.java:89)
	at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:30)
	at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
	at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:75)
	at org.codehaus.xfire.client.Client.invoke(Client.java:335)
	at org.codehaus.xfire.client.Client.invoke(Client.java:349)
	at br.com.maringa.wsBooking.tam.usuario.AutenticarXFire.main(AutenticarXFire.java:36)
Caused by: org.codehaus.xfire.XFireException: Couldn't send message.
	at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:145)
	at org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48)
	at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)
	... 5 more
Caused by: java.net.ConnectException: Connection timed out: connect
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(Unknown Source)
	at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
	at java.net.PlainSocketImpl.connect(Unknown Source)
	at java.net.SocksSocketImpl.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at java.net.Socket.<init>(Unknown Source)
	at java.net.Socket.<init>(Unknown Source)
	at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:79)
	at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:121)
	at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:706)
	at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1321)
	at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:386)
	at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)
	at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
	at org.codehaus.xfire.transport.http.CommonsHttpMessageSender.send(CommonsHttpMessageSender.java:335)
	at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:123)
	... 7 more

alguém sabe o q está acontecendo, se é alguma configuração que está faltando??

o serviço está ativo, pq eu tb estou fazendo testes com o Axis…

Att,
Henrique

6 Respostas

von.juliano

Vc está passando os parâmetros corretos no método invoke? O que é esse xml?

guilherme.chapiewski

Tá parecendo mais um problema de conectividade… Existe conexão entre as duas máquinas que você está usando?

H

sim, os parâmetros estão corretos, eu sei pq com o Axis funcionou normalmente…

esse xml contem o meu usuario, senha, e outras informações necessárias para efetuar um login e receber um sessionId, que será utilizado em outros pontos do programa…

H

Que conexão seria essa??
É algo especifico do XFire?? pq está funcionando normalmente com o Axis!!

H

Alguém ae pode me ajudar??

casmeiron

Irmãozim, eu uso diferente o xfire, eu primeiro crio uma interface, exemplo:

public interface CadastroService {
   public void insereUsuario(Usuario user);
   public Usuario pegaUsuario( Integer codigo );
}

Depois eu crio uma classe que implementa essa interface, que será meu ServiceImpl:

public class CadastroServiceImpl implements CadastroService {
  public void insereUsuario(Usuario user) {
    // hibernate....
  }
  public Usuario pegaUsuario( Integer codigo ) {
     // hibernate ...
     
    return null;
  }
}

Ai você configura o service.xml, faz o qtem q fazer no servidor e no cliente eu faco algo do tipo:

Service model = new ObjectServiceFactory().create(serviceClass, getNameForService(serviceClass), getNamespaceForService(serviceClass), null);
			String url = getUrlForService(serviceClass);
			CadastroService service = (CadastroService) new XFireProxyFactory().create(model, url);

Usuario usuario = service.pegaUsuario( 1 );

Simples assim.
Espero ter ajudado, flwz :slight_smile:

Criado 1 de março de 2007
Ultima resposta 2 de mar. de 2007
Respostas 6
Participantes 4