MyEclipse中和許多網站的WebService教程以HelloWord為例,內容比較簡單,在實際的項目應用中大多都是對象和集合,現在我們擴展下,使用webservice傳遞對象,字符串,集合;
下面是我們設計的webservice的接口:
1
package com.test.service;
2
3
import java.util.List;
4
5
public interface IPerson {
6
//根據用戶名獲取密碼
7
public String getPassword(String name);
8
//根據用戶名獲取Person對象
9
public Person getPersonByName();
10
//獲取全部成員
11
public List<Person> getAllPerson();
12
}
其中有三個方法包含了傳遞:String,Object,List集合;
2,這里我們實現接口中定義的業務邏輯
package com.test.service;

import java.util.LinkedList;
import java.util.List;


public class PersonImpl implements IPerson {

public String getPassword(String name) {
return "Password";
}


public Person getPersonByName() {
return new Person("ObjectName","ObjectPass");
}


public java.util.List<Person> getAllPerson(){
List list = new LinkedList();
list.add(new Person("One","PassOne"));
list.add(new Person("Two","PassTwo"));
list.add(new Person("Three","PassThree"));
return list;
}
}
在實際應用中比較復雜,可能用調用持久層的Dao,返回需要的結果,這里我們直接創建一個模擬數據,下面是實現類中用到的對象
1
package com.test.service;
2
3
public class Person {
4
private String name;
5
private String password;
6
7
public Person() {
8
super();
9
}
10
public Person(String name, String password){
11
super();
12
this.name = name;
13
this.password = password;
14
}
15
public String getPassword(){
16
return password;
17
}
18
public void setPassword(String password){
19
this.password = password;
20
}
21
}
22
3,編寫XFire要求的WebSevice定義描述文件,如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">

<service>
<name>Person</name>
<serviceClass>com.test.service.IPerson</serviceClass>
<implementationClass>
com.test.service.PersonImpl
</implementationClass>
<style>wrapped</style>
<use>literal</use>
<scope>application</scope>
</service></beans>
本文件的放置位置很關鍵,此文件放在src/META-INF/xfire/services.xml,如果使用MyEclipse新建的不是webapplication,而是webservice項目,這一步就省去自己編寫了,編譯時會自動編譯到classes的相應目錄下面。web.z
5,編譯xml,定義XfireConfigableServlet
1
<?xml version="1.0" encoding="UTF-8"?>
2
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
3
<servlet>
4
<servlet-name>XFireServlet</servlet-name>
5
<servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
6
<load-on-startup>0</load-on-startup>
7
</servlet>
8
<servlet-mapping>
9
<servlet-name>XFireServlet</servlet-name>
10
<url-pattern>/services/*</url-pattern>
11
</servlet-mapping>
12
<welcome-file-list>
13
<welcome-file>index.jsp</welcome-file>
14
</welcome-file-list>
15
</web-app>
16
17
所有的工作都已經作完,接下來在部署在tomcate下,啟動服務器,在地址欄鍵入:
http://127.0.0.1:8080/MyWebService/srevice/Person?wsdl
如果出現xml描述文件就成功了;