Problema con Axis (Servicios Web)
Publicado por Nendrel (5 intervenciones) el 19/10/2007 09:35:00
Hola a todos.
Estoy trabajando con Axis. He creado un servicio web y lo tengo desplegado. Me he generado (usando WSDL2Java) las clases necesarias para el cliente (aparecen unas 6 clases). He hecho una clase con un main para probarlo usando esta plantilla:
import PaqueteDondeSeEncuentranLasClasesGeneradas.*;
public class cliente {
public static void main(String [] args) throws Exception {
// Primero instanciamos el "service locator"
claseService service = new claseServiceLocator();
// Ahora usamos el servicio para obtener el stub
claseRemote stb = service.getLoQueSea();
// Por último hacemos la llamada al método del servicio web
stb.MetodoDelServicioWeb();
. . .
}
}
pero me da una excepción:
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.net.ConnectException: Connection refused: connect
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:java.net.ConnectException: Connection refused: 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:464)
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: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 com.tbsolutions.pasarelaERP.cliente.PasarelaERPSoapBindingStub.envio(PasarelaERPSoapBindingStub.java:147)
at Main.main(Main.java:46)
He hecho una traza de la ejecución y al parecer se genera la excepción en la clase de stub:
try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {xmlParams, data});
if (_resp instanceof java.rmi.RemoteException) {
throw (java.rmi.RemoteException)_resp;
}
else {
extractAttachments(_call);
try {
return (java.lang.String) _resp;
} catch (java.lang.Exception _exception) {
return (java.lang.String) org.apache.axis.utils.JavaUtils.convert(_resp, java.lang.String.class);
}
}
} catch (org.apache.axis.AxisFault axisFaultException) {
throw axisFaultException;
}
concretamente en la primera línea del try salta directamente al catch y lanza el axisFaultException. ¿Hay alguna manera de arreglarlo?. Esto siguiendo el siguiente tutorial para la creación de clientes de servicios web usando las clases de Axis:
http://www.locualo.net/programacion/creacion-cliente-servicio-web-utilizando-java-axis/00000089.aspx
Un saludo y gracias de antemano.
Estoy trabajando con Axis. He creado un servicio web y lo tengo desplegado. Me he generado (usando WSDL2Java) las clases necesarias para el cliente (aparecen unas 6 clases). He hecho una clase con un main para probarlo usando esta plantilla:
import PaqueteDondeSeEncuentranLasClasesGeneradas.*;
public class cliente {
public static void main(String [] args) throws Exception {
// Primero instanciamos el "service locator"
claseService service = new claseServiceLocator();
// Ahora usamos el servicio para obtener el stub
claseRemote stb = service.getLoQueSea();
// Por último hacemos la llamada al método del servicio web
stb.MetodoDelServicioWeb();
. . .
}
}
pero me da una excepción:
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.net.ConnectException: Connection refused: connect
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:java.net.ConnectException: Connection refused: 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:464)
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: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 com.tbsolutions.pasarelaERP.cliente.PasarelaERPSoapBindingStub.envio(PasarelaERPSoapBindingStub.java:147)
at Main.main(Main.java:46)
He hecho una traza de la ejecución y al parecer se genera la excepción en la clase de stub:
try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {xmlParams, data});
if (_resp instanceof java.rmi.RemoteException) {
throw (java.rmi.RemoteException)_resp;
}
else {
extractAttachments(_call);
try {
return (java.lang.String) _resp;
} catch (java.lang.Exception _exception) {
return (java.lang.String) org.apache.axis.utils.JavaUtils.convert(_resp, java.lang.String.class);
}
}
} catch (org.apache.axis.AxisFault axisFaultException) {
throw axisFaultException;
}
concretamente en la primera línea del try salta directamente al catch y lanza el axisFaultException. ¿Hay alguna manera de arreglarlo?. Esto siguiendo el siguiente tutorial para la creación de clientes de servicios web usando las clases de Axis:
http://www.locualo.net/programacion/creacion-cliente-servicio-web-utilizando-java-axis/00000089.aspx
Un saludo y gracias de antemano.
Valora esta pregunta


0