首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 6 WebService 處理複雜對象:入參、返回值與客戶端生成細節

     編輯:Java 相關知識

服務端定義

定義兩個業務方法:返回 `UserBean`、接收 `Foo`。均為標準 Java Bean,含無參構造器、getter/setter。

客戶端代碼生成

執行 `wsimport` 後,客戶端項目中自動生成 `UserBean`、`Foo` 類,但結構與服務端不同:

  • 僅保留屬性與 getter/setter。
  • 服務端覆寫的 `toString()`、帶參構造器不會同步到客戶端。

客戶端測試

UserBean user = java6WS.doSomething1("zhangsan", "華中路", true);
Foo foo = new Foo(); foo.setName("李四"); foo.setSex("Man");
String result = java6WS.doSomething2(foo);

運行成功,輸出預期結果。

三大避坑指南

  1. 必須提供無參構造器,否則反序列化失敗。
  2. 服務端覆寫 Object 方法(如 toString)不會傳遞到客戶端,客戶端調用將走默認實現。
  3. 服務端帶參構造器在客戶端失效,客戶端只能用無參構造器 + setter 賦值。

忽略以上三點將導致難以排查的運行時錯誤。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved