Dies ist ein Beispiel für den Aufruf der C#-Version der WebService-Schnittstelle mit Java:
C#-Schnittstelle:
<span style="font-size: 11px;"> using System; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; using System.Web.Services.Description; [WebService(Namespace = "http://www.tangs.com/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class Service : System.Web.Services.WebService { public Service () ...{ //如果使用设计的组件,请取消注释以下行 //InitializeComponent(); } [SoapRpcMethod(Action = "http://www.tangs.com/Add", RequestNamespace = "http://www.tangs.com/T", ResponseNamespace = "http://www.tangs.com/T", Use = SoapBindingUse.Literal)] [WebMethod] public int Add(int a, int b) ...{ return a + b; } [SoapRpcMethod(Action = "http://www.tangs.com/Hello", RequestNamespace = "http://www.tangs.com/T", ResponseNamespace = "http://www.tangs.com/T", Use = SoapBindingUse.Literal)] [WebMethod] public String HelloWorld() ...{ return "Hello, world!"; } } ...</span>
Java ruft die Add-Methode und die HelloWorld-Methode in diesem Webdienst auf:
1. Methode mit Parametern:
<span style="font-size: 11px;"> public static void addTest() { try ...{ Integer i = 1; Integer j = 2; //WebService URL String service_url = "http://localhost:4079/ws/Service.asmx"; Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(new java.net.URL(service_url)); //设置要调用的方法 call.setOperationName(new QName("http://www.tangs.com/T", "Add")); //该方法需要的参数 call.addParameter("a", org.apache.axis.encoding.XMLType.XSD_INT, javax.xml.rpc.ParameterMode.IN); call.addParameter("b", org.apache.axis.encoding.XMLType.XSD_INT, javax.xml.rpc.ParameterMode.IN); //方法的返回值类型 call.setReturnType(org.apache.axis.encoding.XMLType.XSD_INT); call.setUseSOAPAction(true); call.setSOAPActionURI("http://www.tangs.com/Add"); //调用该方法 Integer res = (Integer)call.invoke( new Object[]...{ i, j } ); System.out.println( "Result: " + res.toString()); } catch (Exception e) ...{ System.err.println(e); } }... </span>
hinzufügen und ausführen, das Ergebnis gibt Folgendes zurück: Ergebnis: 3
2. Methode ohne Parameter: HelloWorld
<span style="font-size: 11px;"> public static void helloTest() { try ...{ String endpoint = "http://localhost:4079/ws/Service.asmx"; Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(new java.net.URL(endpoint)); call.setOperationName(new QName("http://www.tangs.com/T", "HelloWorld")); call.setUseSOAPAction(true); call.setSOAPActionURI("http://www.tangs.com/Hello"); String res = (String)call.invoke( new Object[]...{ null } ); System.out.println( "Result: " + res); } catch (Exception e) ...{ System.err.println(e.toString()); } }... </span>
Wie Sie sehen, ist der Aufruf eines Webdienstes ohne Parameter im Grunde dasselbe wie der Aufruf eines Webdienstes mit Parametern. Beim Aufruf ohne Parameter ist es jedoch nicht erforderlich, die Methoden addParameter und setReturnType aufzurufen.
Abfrageergebnisse ausführen Berichtsansicht: Hallo Welt!
Der Anhang ist ein JAR-Paket, von dem der Webdienst abhängt