創建接口
package com.test.service; public interface CaculatorService { public int add(int a,int b); public int sub(int a,int b); }
創建實現類
package com.test.service.impl; import com.test.service.CaculatorService; public class CaculatorServiceImpl implements CaculatorService{ public int add(int a, int b) { return a+b; } public int sub(int a, int b) { return a-b; } }
發佈服務
將該應用納入到xfire應用管轄範圍內(通過配置xml,來訪問xfire封裝的servlet,當按照如下mapping來訪問工程的時候都會由xfire提供的這個servlet來處理)xml配置如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>XFireServlet</servlet-name> <servlet-class> org.codehaus.xfire.transport.http.XFireConfigurableServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/servlet/XFireServlet/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> </web-app>
services配置文件:來指定提供的接口、實現類、服務的名稱;
在src下新增一個META-INF文件夾在下面新建xfire文件夾,在新建services.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>XFireServlet</servlet-name> <servlet-class> org.codehaus.xfire.transport.http.XFireConfigurableServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/servlet/XFireServlet/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> </web-app>
考入xfire的jar包,部署工程啓動tomcat來訪問就ok了
當客戶端發送請求的時候,web.xml會根據servlet mapping訪問到xfire的servlet,有該servlet來訪問services.xml找到需要發佈的服務,這樣客戶端就可以獲得wsdl文件了