我正在使用Netbeans創建Web應用程序項目。當我創建一個新的Web服務(代碼第一個WS)時,IDE添加METRO2.0庫。 SOAP web服務已經部署在我的apache Tomcat 6中。但是,當我發送複雜類型時,客戶端無法訪問客戶端中發送的對象的方法。 說我有一個名爲人類和操作:使通過SOAP發送的對象的方法可見
@WebMethod(operationName = "getOnePerson")
public Person getOnePerson() {
return new Person("MyName", "MySurname", 24);
}
而Person類:
public class Person {
private String name, surname;
private int age;
public Person() {
}
public Person(String name, String surname, int age) {
this.name = name;
this.surname = surname;
this.age = age;
}
public int getAge() {
return age;
}
public String getName() {
return name;
}
public String getSurname() {
return surname;
}
}
那麼請問有什麼可以讓客戶知道人的方法呢? 感謝 編輯:我已經嘗試通過增加Pesron的屬性來更新我的XSD文件:
<xs:complexType name="person">
<xs:attribute name="name" type="xs:string" />
<xs:attribute name="surname" type="xs:string" />
<xs:attribute name="age" type="xs:int" />
</xs:complexType>
通過添加此部分,客戶端知道Person類的吸氣&二傳手,但試圖運行程序的時候,所有的getter方法返回null(客戶端):
public class Main {
public static void main(String[] args) {
try {
Person p = getOnePerson();
System.out.println(p);
System.out.println(p.getSurname());
System.out.println(p.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
private static Person getOnePerson() {
com.company.ws.BeanWebService_Service service = new com.company.ws.BeanWebService_Service();
com.company.ws.BeanWebService port = service.getBeanWebServicePort();
return port.getOnePerson();
}
}
回報: [email protected] 空 空 那麼你能否告訴我爲什麼客戶不知道類屬性的不同值?
我可以將類複製到客戶端。但是JVM能夠解析每個屬性的地址內存嗎?實際上,客戶端會自動創建一個名爲com.company.ws.Person的新類型,其中沒有方法。因此創建具有相同名稱的另一個類可能會導致一些問題。不是嗎? – 2012-04-15 11:54:02