我有這樣的問題: 創建您自己的SOAP Web服務,它將保存有關人員 (例如在地圖中)的信息。每個人都有以下屬性: 名字,姓氏,出生日期。 您的網絡服務將響應一個查詢,該查詢將基於以下內容過濾存儲的條目:姓氏,出生日期。 根據提供的示例創建一個JUnit測試,用於驗證您的SOAP Web服務是否按預期工作。java web服務SOAP
我在Eclipse中創建動態Web項目,並寫道類是這樣的:
public class Person {
String firstName, surname, birthDate;
public Person(String firstName, String surname, String birthDate) {
this.firstName = firstName;
this.surname = surname;
this.birthDate = birthDate;
}
}
和搜索:
public class Search {
ArrayList<Person> people = new ArrayList<Person>();
public Search() {
Person jim = new Person("Jim", "Abacki","01/01/1990");
Person scott = new Person("Scott","Babacki", "01/01/1990");
Person anna = new Person("Anna","Cabacki", "01/01/1991");
Person dan = new Person("Dan","Dabacki", "01/01/1992");
Person ola = new Person("Ola","Fabacki", "01/01/1993");
Person eva = new Person("Eva","Fabacki", "01/01/1991");
people.add(jim);
people.add(scott);
people.add(anna);
people.add(dan);
people.add(ola);
people.add(eva);
}
public String[] searchBySurname(String surname){
int i =0;
for(Person x : people){
if(x.surname==surname){
i++;
}
}
String[] result = new String[i];
int a=0;
for(Person x : people){
if(x.surname==surname){
result[a]=x.firstName+ " "+ x.surname + " "+ x.birthDate;
a++;
}
}
return result;
}
public String[] searchByBirthDate(String birthDate){
int i =0;
for(Person x : people){
if(x.surname==birthDate){
i++;
}
}
String[] result = new String[i];
int a=0;
for(Person x : people){
if(x.surname==birthDate){
result[a]=x.firstName + " "+ x.surname + " "+ x.birthDate;
a++;
}
}
return result;
}
}
然後我點擊類的搜索添加新的Web服務 - > Web服務 - >創建新的Web服務(在屬性中,我選擇了Axis2和Tomcat服務器)。然後我和班人做了類似的事情。
我認爲一切正常,所以我添加了搜索的Web服務客戶端,然後嘗試添加Person Web Service,但發生錯誤:WSDL的代碼生成期間發生異常:org.apache.axis2.AxisFault:在portType元素中找不到操作。
而且還當我試圖調用運行,如:
SearchStub a = new SearchStub();
a.searchBySurname(...);
代替點的Eclipse給我的建議是這樣的:
a.searchBySurname(SearchBySurname searchBySurname2);
這也怪我,因爲這個功能參數應該接受String。
這裏是我的問題: 我做錯了什麼?你能幫我解決這個問題嗎?也許有人有很好的教程,因爲我在互聯網上找到的東西沒有幫助。