2016-05-25 14 views
0

Ich möchte Web-Service mit Achse aufrufen. Ich möchte diesen Code verwenden. Kann mir jemand sagen, was der Wert für Call.SOAPACTION_URI_PROPERTY sein soll?SOAPACTION_URI_PROPERTY in Aufruf Webservice mit Achse

Code:

  try { 

     String endpoint = "http://www.w3schools.com/webservices/tempconvert.asmx"; 

     Service service = new Service(); 
     Call call= (Call) service.createCall(); 

     call.setProperty(Call.SOAPACTION_USE_PROPERTY, new Boolean(true)); 
     call.setProperty(Call.SOAPACTION_URI_PROPERTY, "http://tempuri.org/CelsiusToFahrenheit"); 

     call.setTargetEndpointAddress(new java.net.URL(endpoint)); 
     call.setOperationName(new QName("http://tempuri.org/CelsiusToFahrenheit","CelsiusToFahrenheit")); 

     String ret = (String) call.invoke(new Object[] {"20"}); 
     System.out.println("Sent '20', got '" + ret + "'"); 

} catch (Exception e) { 
     System.err.println(e.toString()); 
} 

Antwort

1

In dieser Zeile

call.setProperty(Call.SOAPACTION_USE_PROPERTY, new Boolean(true)); 
call.setProperty(Call.SOAPACTION_URI_PROPERTY, "http://tempuri.org/CelsiusToFahrenheit"); 

Sie sagen, dass Sie eine Seife Aktion festlegen möchten, und dass die Seife Aktion CelsiusToFahrenheit ist.

Die SOAP-Aktion ist nicht obligatorisch und kann verwendet werden, um einem Webservice mitzuteilen, welche Methode ausgeführt werden soll. Edit:

Also der Wert zuzuweisen, hängt von der Spezifikation in Ihnen wsdl. Sie sollten einige Tags mit dem Namen "operation name = 'something'" finden, um zu sehen, welche Operation für den WS definiert ist.

Versuchen

call.setOperationName(new QName("http://tempuri.org/CelsiusToFahrenheit","CelsiusToFahrenheit")); 

mit

call.setOperationName(new QName("http://tempuri.org","CelsiusToFahrenheit")); 
+0

Danke zu ersetzen und was ist http://tempuri.org? Meine wsdl-URL ist http: // localhost: 8080/MyWebService/MeinWebService/hallo? wsdl- also was sollte ich mit http://tempuri.org ersetzen. – John

+0

Ich kann nicht auf die WSDL in Ihrem lokalen Host zugreifen ... Übrigens denke ich, dass Tempuri.org ist einfach ein Namespace. Ich habe die Antwort bearbeitet, um zu zeigen, wie Sie die Eigenschaft festlegen sollten. – Hooch

+0

Vielen Dank @ Hooch – John

Verwandte Themen