Problema com XFire

1 resposta
J

Eu criei um web service com o XFire.
Agora estou tendo dificuldade em acessar esse web service com um cliente.

o código do meu cliente é o seguinte:

String serviceURL = "http://localhost:8080/ModeloAluno/services/Modelo";
Service serviceModel = new ObjectServiceFactory().create(IModeloAluno.class);
			
XFireProxyFactory serviceFactory = new XFireProxyFactory();
		
try
{
IModeloAluno service = (IModeloAluno)serviceFactory.create(serviceModel, serviceURL);
Client client = Client.getInstance(service);
client.addOutHandler(new OutHeaderHandler());
try {
	String m = service.buscaModeloCurso("");
	System.out.println("passou "+m);
} catch (SQLException e) {
	e.printStackTrace();
}
			
}
catch (MalformedURLException e)
{
	e.printStackTrace();
}

o erro é o seguinte:

org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Fault: java.lang.NullPointerException org.codehaus.xfire.fault.XFireFault: Fault: java.lang.NullPointerException at org.codehaus.xfire.fault.Soap11FaultSerializer.readMessage(Soap11FaultSerializer.java:31) at org.codehaus.xfire.fault.SoapFaultSerializer.readMessage(SoapFaultSerializer.java:28) at org.codehaus.xfire.soap.handler.ReadHeadersHandler.checkForFault(ReadHeadersHandler.java:111) at org.codehaus.xfire.soap.handler.ReadHeadersHandler.invoke(ReadHeadersHandler.java:67) at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131) at org.codehaus.xfire.client.Client.onReceive(Client.java:382) at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:139) at org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48) at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26) 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.XFireProxy.handleRequest(XFireProxy.java:77) at org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57) at $Proxy0.buscaModeloCurso(Unknown Source) at com.mhcruz.studentmodel.ModelTest.main(ModelTest.java:69)

Obrigado

1 Resposta

Luca

Olá

Sem examinar muito o problema, sinto o cheiro de falta de tratamento a mensagens Fault. Deve estar ocorrendo algum erro ou exception no Web Service que ele precisa responder com uma mensagem SOAP do tipo Fault mas não consegue.

Se o problema for este, veja como criar uma mensagem Fault em http://xfire.codehaus.org/Fault+and+Exception+Handling

E sempre procure entender de mensagens SOAP e também de WSDL pois volta e meia a gente precisa meter a mão na lama.

[]s
Luca

Criado 11 de setembro de 2006
Ultima resposta 11 de set. de 2006
Respostas 1
Participantes 2