日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

通过IDE生成和手动call调用webservice

發(fā)布時(shí)間:2023/12/18 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通过IDE生成和手动call调用webservice 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前些天發(fā)現(xiàn)了一個巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點(diǎn)擊跳轉(zhuǎn)到教程。

通過IDE自動生成的代碼調(diào)用webservice服務(wù)

?

我們的IDE一般來說都是能夠通過各種各樣的工具來支持我們的開發(fā)使我們的開發(fā)變得更加的便捷。對于webservice來說自然也是如此,所以我們可以輕松的調(diào)用webservice插件來進(jìn)行客戶端代碼的生成。在這里我們直接new就可以了

?

把我們本地的WSDL的地址輸入進(jìn)去

?

?

?

直接finish,自動生成了一堆的類和對象

?

?

?

然后我們直接根據(jù)以下的方法就可以測試我們的webservice接口的情況了

?

[java]?view plain?copy
  • package?localhost.webserviceTest.test;??
  • ??
  • import?org.apache.axis.AxisFault;??
  • ??
  • import?localhost.webserviceTest.services.webServiceTest.HellowWorldProxy;??
  • import?localhost.webserviceTest.services.webServiceTest.WebServiceTestSoapBindingStub;??
  • ??
  • public?class?webClientTest?{??
  • ??
  • ??????
  • ????public?static?void?main(String[]?args?){??
  • ????????try?{??
  • ????????????HellowWorldProxy?pHellowWorldProxy=?new?HellowWorldProxy();??
  • ????????????System.out.print(pHellowWorldProxy.test("?zhengfang.sun"));??
  • ??????????
  • ????????}?catch?(Exception?e)?{??
  • ????????????//?TODO?Auto-generated?catch?block??
  • ????????????e.printStackTrace();??
  • ????????}??
  • ??????????
  • ????}??
  • }??
  • ?

    結(jié)果如下圖所示

    ?

    ?

    ?

    org.apache.axis.client.Call調(diào)用

    Webservice接口我們自然可以通過IDE提供的功能進(jìn)行生成,但是有時(shí)候也是會出現(xiàn)意外的,提供webservice的系統(tǒng)或者是服務(wù)方所在的網(wǎng)絡(luò)環(huán)境和調(diào)用端的不連通,沒有辦法通過IDE進(jìn)行生成,這個時(shí)候掌握其本質(zhì)的調(diào)用方法就變得尤為重要

    這種方法適用于在能夠看到WSDL或者是能夠知曉服務(wù)方提供的服務(wù)信息的前提下就可以使用。其核心是通過org.apache.axis.client.Call這個類進(jìn)行webservice的調(diào)用。

    [java]?view plain?copy
  • package?localhost.webserviceTest.test;????
  • ????
  • import?java.net.MalformedURLException;????
  • import?java.rmi.RemoteException;????
  • ???
  • import?javax.xml.namespace.QName;????
  • import?javax.xml.rpc.ServiceException;??
  • ??
  • import?org.apache.axis.client.Call;????
  • import?org.apache.axis.client.Service;????
  • ???
  • public?class?ClientTest?{????
  • ????
  • ????public?static?void?main(String[]?args)?throws?MalformedURLException,?RemoteException?{????
  • ????????????
  • ????????Service?service?=?new?Service();????
  • ????????try?{????
  • ???????????????
  • ???????????Call?call?=?(Call)?service.createCall();????
  • ????????????//設(shè)置地址??注意這里的地址是附帶WSDL的??
  • ????call.setTargetEndpointAddress(new?java.net.URL("http://localhost:8080/webserviceTest/services/webServiceTest?wsdl"));????
  • ??????????//設(shè)置要執(zhí)行的方法??????????????????????????????????????命名空間????????????????????????方法名??
  • ????call.setOperationName(new?QName("http://localhost:8080/webserviceTest/services/webServiceTest","test"));???
  • ???????????//設(shè)置要傳入?yún)?shù),如果沒有要傳入的參數(shù),則不要寫這個???
  • ???????????//如果我們只有單個參數(shù)的話這個參數(shù)的名稱其實(shí)可以隨意選取???
  • ????call.addParameter("testStr",?org.apache.axis.Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN);????
  • ????????????//設(shè)置返回的類型????
  • ????call.setReturnType(org.apache.axis.Constants.XSD_STRING);????
  • ????????????????
  • ???????????String?name?=?"zhengfang.sun1";???
  • ???????????//執(zhí)行,調(diào)用webservice????
  • ???????????String?result?=?(String)?call.invoke(new?Object[]{name});????
  • ???????????System.out.println(result);?????????????????
  • ????????}?catch?(ServiceException?e)?{????
  • ???????????e.printStackTrace();????
  • ????????}????
  • ????}????
  • ????
  • }????
  • ?

    方法的執(zhí)行結(jié)果

    ?

    總結(jié)

    以上是生活随笔為你收集整理的通过IDE生成和手动call调用webservice的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。