Bonjour
J'ai un web service tout simple qui tourne avec axis2.
Ma classe Java est la suivante:
public class Receiver {
public int process(String message) throws java.rmi.RemoteException {
return 1;
}
}
Mon fichier services.xml:
<service name="DemRec" targetNamespace="http://ws.fr/myproj/Rec.wsdl">
<description>test axis2</description>
<parameter name="useOriginalWSDL">true</parameter>
<parameter name="ServiceClass" locked="false">crpgl.Receiver</parameter>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</messageReceivers>
</service>
Mon client qui invoque le web service est la suivante:
...
ServiceClient serviceClient = new ServiceClient ();
Options opts = new Options();
opts.setTo(new EndpointReference("http://localhost:8084/MyWS/services/DemRec"));
opts.setAction("urn:process");
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNs = fac.createOMNamespace("http://axiom.service.quickstart.samples/xsd", "tns");
OMElement method = fac.createOMElement("process", omNs);
OMElement value = fac.createOMElement("message", omNs);
value.addChild(fac.createOMText(value, "abc"));
method.addChild(value);
OMElement result = serviceClient.sendReceive(method);
String response = result.getFirstElement().getText();
...
Mon web service est bien disponible. Je réussi bien à voir le wsdl quand je tape l'URL du web service.
Cependant, quand la ligne sendReceive est exécutée, l'erreur suivante est générée:
org.apache.axis2.AxisFault: No address information in EPR, cannot infer transport
Quelqu'un pourrait-il m'aider à résoudre ce problème?
merci
Partager