WebService學習筆記系列(一)

      網友投稿 664 2025-04-01

      webservice主要是解決兩個系統或者兩個應用程序之間的遠程調用,它提供了一種通過web方式訪問的api,調用是跨語言、跨平臺的。


      webservice的客戶端與服務端進行交互的時候使用xml來傳遞數據。

      soap協議,即簡單對象訪問協議,它是webservice的客戶端與服務端進行交互的時候遵守的一個協議。

      在服務端調用webservice服務時,我們可以通過Java jdk自帶的一個命令wsimport,根據服務說明書生成本地Java代碼,我們直接操作這些Java代碼就可以調用webservice.

      wsimport -d . wsdl地址 生成本地class文件

      wsimport -s . wsdl地址 生成本地java文件,

      wsimport -s . -p 包名 wsdl地址 生成本地java文件,并且指定包名

      然后直接操作這些Java文件來調用服務端程序。

      來看一段代碼:

      在服務端發布一個類:

      發布程序,運行main方法,即表示發布:

      public class PublishService { public static void main(String[] args) { //java提供了一個專門的類,用來用來將一個Java應用程序發布成webservice /** * 兩個參數,分別是 * 1.服務類對外的訪問地址 * 2.服務類的一個實例 */ Endpoint.publish("http://127.0.0.1:8888/helloService", new HelloService()); } }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      所發布的類:

      //被發布的類上面必須有@WebService注解 @WebService public class HelloService { /** * 被發布的類中必須包含一個非靜態的,非final的public方法 */ public void helloWebService(){ System.out.println("hello webservice!"); } public User getUser(){ return new User("張三","zhangsan"); } }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      WebService學習筆記系列(一)

      13

      14

      15

      User.java

      public class User { private String username; private String nickname; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getNickname() { return nickname; } public void setNickname(String nickname) { this.nickname = nickname; } public User(String username, String nickname) { this.username = username; this.nickname = nickname; } }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      通過wsimport獲得服務器端的類:

      成功獲得服務器端的類,在F盤可以看到這些類,然后新建一個客戶端project,把這些類拷貝進去,在客戶端直接操作這些類就可以訪問服務端程序:

      客戶端程序:

      public class MyTest { public static void main(String[] args) { HelloService helloService = new HelloServiceService() .getHelloServicePort(); User user = helloService.getUser(); System.out.println(user.getNickname()+","+user.getUsername()); } }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      客戶端輸出:

      成功拿到服務端數據。

      如果調用helloWebService()方法

      public class MyTest { public static void main(String[] args) { HelloService helloService = new HelloServiceService() .getHelloServicePort(); helloService.helloWebService(); } }

      1

      2

      3

      4

      5

      6

      7

      8

      則服務端輸出:

      成功調用服務端。

      如果要傳遞視頻,音頻圖片等消息,可以通過InputStream和OutputStream來實現。

      這是通過wsimport的方式來調用服務端程序,下一篇我們看另外一種調用方式。

      Java

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如何搜索文中內容?
      下一篇:RACV2019觀點集錦 | 未來5-10年計算機視覺發展趨勢(一)
      相關文章
      亚洲日韩乱码中文字幕| 亚洲无码日韩精品第一页| 亚洲AV永久精品爱情岛论坛| 亚洲人妻av伦理| 亚洲视频在线观看视频| 亚洲国产另类久久久精品黑人| 亚洲中文字幕无码中文字在线| 亚洲国产成人久久综合区| 国产精品国产亚洲区艳妇糸列短篇| 亚洲aⅴ无码专区在线观看春色 | 亚洲精品国产精品国自产网站| 亚洲冬月枫中文字幕在线看| 亚洲精品第一国产综合野| 亚洲午夜一区二区三区| 亚洲精品无码久久久久牙蜜区| 亚洲高清国产拍精品熟女| 在线看亚洲十八禁网站| 亚洲国产精品成人久久蜜臀| 亚洲精品一级无码鲁丝片| 中文字幕在线亚洲精品| 亚洲国产综合无码一区| 水蜜桃亚洲一二三四在线| 亚洲综合激情另类小说区| 亚洲国产av高清无码| 亚洲AV日韩综合一区尤物| 亚洲国产成人AV在线播放| 另类专区另类专区亚洲| 久久亚洲国产成人精品无码区| 中文字幕亚洲无线码| 亚洲成在人线av| 亚洲高清在线mv| 在线aⅴ亚洲中文字幕| 色九月亚洲综合网| 国产亚洲情侣一区二区无| 亚洲成AV人片在| 亚洲春色在线观看| 亚洲欧洲无码一区二区三区| 亚洲AV无码乱码精品国产| 亚洲精品蜜桃久久久久久| 亚洲尹人九九大色香蕉网站| 亚洲91精品麻豆国产系列在线|