通過IDE生成和手動call調用webservice

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。

通過IDE自動生成的代碼調用webservice服務

?

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

?

把我們本地的WSDL的地址輸入進去

?

?

?

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

?

?

?

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

?

[java]?view plain?copy
  1. package?localhost.webserviceTest.test;??
  2. ??
  3. import?org.apache.axis.AxisFault;??
  4. ??
  5. import?localhost.webserviceTest.services.webServiceTest.HellowWorldProxy;??
  6. import?localhost.webserviceTest.services.webServiceTest.WebServiceTestSoapBindingStub;??
  7. ??
  8. public?class?webClientTest?{??
  9. ??
  10. ??????
  11. ????public?static?void?main(String[]?args?){??
  12. ????????try?{??
  13. ????????????HellowWorldProxy?pHellowWorldProxy=?new?HellowWorldProxy();??
  14. ????????????System.out.print(pHellowWorldProxy.test("?zhengfang.sun"));??
  15. ??????????
  16. ????????}?catch?(Exception?e)?{??
  17. ????????????//?TODO?Auto-generated?catch?block??
  18. ????????????e.printStackTrace();??
  19. ????????}??
  20. ??????????
  21. ????}??
  22. }??

?

結果如下圖所示

?

?

?

org.apache.axis.client.Call調用

Webservice接口我們自然可以通過IDE提供的功能進行生成,但是有時候也是會出現意外的,提供webservice的系統或者是服務方所在的網絡環境和調用端的不連通,沒有辦法通過IDE進行生成,這個時候掌握其本質的調用方法就變得尤為重要

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

[java]?view plain?copy
  1. package?localhost.webserviceTest.test;????
  2. ????
  3. import?java.net.MalformedURLException;????
  4. import?java.rmi.RemoteException;????
  5. ???
  6. import?javax.xml.namespace.QName;????
  7. import?javax.xml.rpc.ServiceException;??
  8. ??
  9. import?org.apache.axis.client.Call;????
  10. import?org.apache.axis.client.Service;????
  11. ???
  12. public?class?ClientTest?{????
  13. ????
  14. ????public?static?void?main(String[]?args)?throws?MalformedURLException,?RemoteException?{????
  15. ????????????
  16. ????????Service?service?=?new?Service();????
  17. ????????try?{????
  18. ???????????????
  19. ???????????Call?call?=?(Call)?service.createCall();????
  20. ????????????//設置地址??注意這里的地址是附帶WSDL的??
  21. ????call.setTargetEndpointAddress(new?java.net.URL("http://localhost:8080/webserviceTest/services/webServiceTest?wsdl"));????
  22. ??????????//設置要執行的方法??????????????????????????????????????命名空間????????????????????????方法名??
  23. ????call.setOperationName(new?QName("http://localhost:8080/webserviceTest/services/webServiceTest","test"));???
  24. ???????????//設置要傳入參數,如果沒有要傳入的參數,則不要寫這個???
  25. ???????????//如果我們只有單個參數的話這個參數的名稱其實可以隨意選取???
  26. ????call.addParameter("testStr",?org.apache.axis.Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN);????
  27. ????????????//設置返回的類型????
  28. ????call.setReturnType(org.apache.axis.Constants.XSD_STRING);????
  29. ????????????????
  30. ???????????String?name?=?"zhengfang.sun1";???
  31. ???????????//執行,調用webservice????
  32. ???????????String?result?=?(String)?call.invoke(new?Object[]{name});????
  33. ???????????System.out.println(result);?????????????????
  34. ????????}?catch?(ServiceException?e)?{????
  35. ???????????e.printStackTrace();????
  36. ????????}????
  37. ????}????
  38. ????
  39. }????
?

方法的執行結果

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/451147.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/451147.shtml
英文地址,請注明出處:http://en.pswp.cn/news/451147.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

前端性能優化之Lazyload

前端性能優化之Lazyload (Mob前端-冬晨)[JavaScript|技術分享|懶加載] [TOC] Lazyload 簡介 前端工作中,界面和效果正在變得越來越狂拽炫酷,與此同時性能也是不得不提的問題。有些項目,頁面長,圖片多,內容豐富。像商城…

mysql查最大字符串

select MAX(comp_code0) from t_base_company字符串 0 把字符串轉成數字轉載于:https://www.cnblogs.com/feifeicui/p/9726401.html

中國聯通被指亂扣費 返還金額限制用

摘要:宋先生的聯通卡開通的是30G加100MB流量的套餐,宋先生上網認真核實了手機清單,發現近期上網流量從未超出。這回聯通客服的解釋是:“亂扣的費用已經在4月29日返還到你的卡里,這筆費用為‘隱藏扣費’,你是…

JAVA使用FTPClient類讀寫FTP

見:http://blog.csdn.net/kardelpeng/article/details/6588284 1.首先先導入相關jar包 2.創建一個連接FTP的工具類FTPUtil.Java [java] view plaincopy package com.metarnet.ftp.util; import java.io.IOException; import java.io.InputStream; import j…

揭秘一線互聯網企業 前端JavaScript高級面試

第1章 課程介紹本章主要介紹課程的知識大綱,每個章節的解決順序和主要內容。1-1 導學1-2 課程重要提示1-3 架構 第2章 ES6 語法本章主要講解工作中最常用的 ES6 語法,包括 Module Class Promise 等語法,還會介紹使用 babel webpack rollup 來…

Java IO類庫之ObjectInputStream和ObjectOutPutStream

2019獨角獸企業重金招聘Python工程師標準>>> 一、ObjectOutputStream 1 - ObjectOuputStream介紹 ObjectOutputStream(對象字節輸出流),用于將一個序列化對象寫入到創建ObjectOutputStream時傳入的底層字節輸入流中,通過源碼可知該類繼承Outp…

什么是覆蓋索引?如何利用覆蓋索引進行SQL語句優化?

如果你不知道什么是覆蓋索引,那么SQL性能優化便無從談起! 什么是覆蓋索引?如何利用索引進行SQL語句優化? 表結構 150多萬的數據,這么一個簡單的語句: 慢查詢日志里居然很多用了1秒的,Explain的結果是&am…

ARM的商業模式是如何煉成的?

導讀:保守、嚴謹,又有一些皇族氣質,作為一家擁有純正英國血統的公司,ARM看似呆板的作風卻讓其在移動互聯網大潮中勢如破竹,沒有對手。也許過于看重產業鏈伙伴的聲音,導致ARM的決策有些遲緩,比如…

java 將一段時間分割為兩個連續的時間

eg: 20180901 -- 20180930 ->>>> 20180901-20180915 && 20180916-20180930 /*** 獲取兩日期相差天數** param beginDateStr 時間起點* param endDateStr 時間終點* param TimeType 時間類型 yyyy-MM-dd || yyyyMMdd || ....* return long /天數*/public …

java 中 FtpClient 實現 FTP 文件上傳、下載

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 源代碼大部分是網上找的,查來查去,找到幾個可以用的例子,改來改去,揉合成現在這個樣子。…

MongDB集合文檔操作符

一、MongoDB - 連接1.啟動 MongoDB 服務只需要在 MongoDB 安裝目錄的 bin 目錄下執行 mongod 即可執行啟動操作后,mongodb 在輸出一些必要信息后不會輸出任何信息,之后就等待連接的建立,當連接被建立后,就會開始打印日志信息。可以…

LIMIT M,N分頁性能優化方案

利用子查詢優化 說明: MySQL 并不是跳過 offset 行,而是取 offsetN 行,然后返回放棄前 offset 行,返回 N 行,那當 offset 特別大的時候,此時使用limit m,n效率就非常的低下。想要提升性能要么控制返回的總頁數&#…

PHP獲取文件后綴名

PHP獲取文件后綴名是PHP學習者常見的一種操作,無論是在面試過程中還是PHP新手自學中。PHP獲取文件后綴名都是很普遍的需要掌握的一個知識點。下面我們就給大家總結介紹PHP獲取文件擴展名也就是后綴名的兩種方法!一、通過pathinfo首先大家應該知道pathinf…

Web Service 簡單實例(java 版本) ,IDE自動生成客戶端代碼方法

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 一、客戶端工程 jar 包 : 二、1. 服務端:( new 一個web service project ) package com;import javax.jws.…

最佳Linux服務器發行版

一款Linux發行版就如同一件衣服一樣,適合自己的才是最好的選擇。 對大型企業而言,當然首選Red Hat Enterprise Linux(RHEL)。Red Hat有完善的技術支持服務,而且在我們周圍,非常容易找到持有Red Hat認證的技…

在線代碼編輯器 Codemirror 的輕量級 React 組件

代碼編輯器 CodeMirror 的輕量級 React 組件 demo uiw-react.github.io/react-codem… 特性: ? 自動根據 mode 配置加載 mode 文件。 ? 快速簡單的配置 API。 安裝 npm install uiw/react-codemirror --save 復制代碼使用 import CodeMirror from uiw/react-codemirror; impo…

「機械」4大傳動方式優劣對比:機械、電氣、氣壓、液壓

傳動方式有很多種。目前應用比較多的四大類傳動方式(機械、電氣、液壓和氣壓)中,沒有一種動力傳動是十全十美的。今天跟大家分享4種傳動方式的優劣對比。 一. 機械傳動 1. 齒輪傳動 齒輪傳動是機械傳動中應用最廣的一種傳動形式。它的傳動比較…

一次性獲取多個oracle序列的值,實現關聯表多數據的批量insert

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 業務 要求批量導入不小于10W條數據到 user 表,但是user表在 insert 每條數據的同時要 insert 一條對應數據到 customer表…

開始使用C++11的9個理由

如果你的代碼工作正常并且表現良好,你可能會想知道為什么還要使用C 11。當然了,使用用最新的技術感覺很好,但是事實上它是否值得呢? 在我看來,答案毫無疑問是肯定的。我在下面給出了9個理由,它們分為兩類&a…