|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Palermo
Messaggi: 1079
|
[Java] Client web service senza classi stub
Salve a tutti sto cercando di scrivere, sfruttando le librerie axis, un client per un web service installato su jboss. Mi interessa scriverlo senza l'utilizzo delle classi stub (con quelle ci sono riuscito senza problemi).
Il web service jboss è così definito: @WebService @SOAPBinding(style = SOAPBinding.Style.RPC) il metodo del webservice che devo invocare è così dichiarato: @WebMethod public double fattoriale(int numero){ ........ } Io avevo provato a scrivere il mio client in questo modo: Codice:
String servizio="Tesi";
String endpoint = "http://localhost:8080/"+servizio;
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.addParameter("arg0", XMLType.XSD_INT, ParameterMode.IN);
call.setOperationName("fattoriale");
call.setReturnType(XMLType.XSD_DOUBLE);
Object[] param = new Object[] {new Integer(6)};
String risultato = call.invoke(param)+""; //Qui mi da errore
System.out.println(risultato);
Codice:
Endpoint {http://tesi/}TesiPort does not contain operation meta data for: fattoriale
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
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 ClientWebServiceDinamico.main(ClientWebServiceDinamico.java:43)
Cosa devo correggere? Grazie a tutti, ciao ciao. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Sep 2007
Messaggi: 754
|
Ti posto il codice di un cliend che ho fatto io, vedi se ti puo essere utile
Codice:
String ret = "";
try {
String endpoint = Utility.inifile.getStringProperty("SETTINGS", "endpoint");
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName(new QName("http://soapinterop.org/", "logIn"));
ret = (String) call.invoke(new Object[] { username, pwd });
} catch (Exception e) {
System.err.println(e.toString());
}
return ret;
__________________
http://www.tevigroup.it/ |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Palermo
Messaggi: 1079
|
Ciao grazie per l'aiuto ma ho sempre lo stesso errore, cosa devo modificare?
Grazie a tutti, ciao ciao. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:09.



















