XFire使得在JavaEE應用中釋出Web服務變得輕而易舉。和其他Web服務引擎相比,XFire的配置非常簡單,可以非常容易地和Spring整合。那麼XFire怎麼建立WebService,下面yjbys小編為大家分享XFire建立WebService簡單例項:
一. 使用XFire釋出WebService
1. 建立service介面
Java程式碼
1. package ice;
2. import ;
3.
4. public interface IHelloService {
5. public String sayHello(String name);
6. public User getUser(User user);
7. }
8. }
2.建立Service介面的實現類
Java程式碼
1. package ice;
2. import ;
3. public class HelloService implements IHelloService{
4. public String sayHello(String name){
5. return "Hello, "+name;
6. }
7. public User getUser(User user) {
8. User userNew = new User();
9. d("new:"+d());
10. ame("new:"+ame());
11. return userNew;
12. }
13.}
Java程式碼
1. package ;
2. public class User {
3. private String id;
4. private String name;
5. public String getId() {
6. return id;
7. }
8. public void setId(String id) {
9. = id;
10. }
11. public String getName() {
12. return name;
13. }
14. public void setName(String name) {
15. = name;
16. }
17.}
3.在檔案中進行XFire攔截配置,可參照網提供的sample。
Xml程式碼
1.
2.<web-app version="2.4" xmlns=""
3. xmlns:xsi=""
4. xsi:schemaLocation="
5. _2_">
6.
7.
8.
9.
10. eConfigurableServlet
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
4.在class目錄下建立META-INF目錄,如(META-INF>xifre->),
在檔案中進行webservice服務的釋出,可參照網提供的`sample。
Xml程式碼
1.
2.
3.
4.
5.
6.
7.
8.
5.將xfire的Jar包和相關依賴包拷到系統應用中,在Tomcat下部署應用。
啟動tomcat後訪問服務(需在應用後加上/services,webservice才會進行攔截):
例:http://localhost:8080/ws2/services。(IE下有時無法顯示列表,可用其它瀏覽器顯示或指定介面名稱)
介面如下:
點選後檢視詳細的wsdl文件,不同的瀏覽器下訪問會有區別,展示效果不一致。
二.建立XFire客戶端進行呼叫
1.本地客戶端呼叫,與webservice服務在同一應用。
Java程式碼
1. package nt;
2.
3. import ormedURLException;
4. import eFactory;
5. import eProxyFactory;
6. import ice;
7. import ctServiceFactory;
8. import loService;
9. import ;
10.
ic class ClientTest {
12. public static void main(String args[]) throws MalformedURLException {
13. Service service = new ObjectServiceFactory()te(s);
14. XFireProxyFactory factory = new XFireProxyFactory(XFireFactory
15. nstance()Fire());
16. String url = "http://localhost:8080/ws2/services/HelloService";
17. IHelloService helloService = (IHelloService) te(service,url);
18. tln(ello("張三"));
19. User user = new User();
20. ame("張三");
21. tln(ser(user)ame());
22. }
23.}
執行結果如下:
Java程式碼
1. Hello, 張三
2. new:張三
2. 利用XFire建立檔案生成客戶端程式碼呼叫webservice服務
2.1在src目錄下建立erties檔案,配置如下:
Java程式碼
1. =${basedir}
2. =D:/myspace/ws2/WebRoot/WEB-INF/lib
3. =http://localhost:8080/ws2/services/HelloService?wsdl
2.2在src目錄下建立檔案,配置如下:
Xml程式碼
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.<taskdef name="wsgen" classname="nTask"
12. classpathref="project-classpath" />
13.<wsgen outputDirectory="${}" wsdl="${}"
14. package="nt" overwrite="true"/>
15.
16.
用ant構建生成程式碼,生成後的目錄如下:
2.3編寫客戶端程式碼進行呼叫
Java程式碼
1. package nt;
2. import oServiceClient;
3. import oServicePortType;
4. import ctFactory;
5. import ;
6.
7. public class HelloServiceTest {
8.
9. public static void main(String args[]){
10. HelloServiceClient service = new HelloServiceClient();
11. HelloServicePortType portType = elloServiceHttpPort();
12. tln(ello("張三"));
13.
14. ObjectFactory factory = new ObjectFactory();
15. User user = teUser();
16. ame(teUserName("張三"));
17. tln(ser(user)ame()alue());
18. }
19.}
執行結果如下:
Java程式碼
1. Hello, 張三
2. new:張三