用的Java調用WebService的

來源:互聯網
上載者:User
這是一個用Java的調用C#版的WebService介面的例子:
C#介面:

<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的調用這個web服務中的添加方法和HelloWorld的方法:

1,有參方法:添加

<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>

運行,結果返回:結果:3

2.無參方法:的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>

可以看到,調用無參的web服務和有參的基本相同,不過無參調用時,不需要調用呼叫的addParameter方法和setReturnType方法
執行查詢查詢結果報道查看:你好,世界!

附件在為Web服務依賴的JAR包

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.