基於xfire發佈web Service簡單實例

  • 創建接口

    1. package com.test.service;
      public interface CaculatorService {
          public int add(int a,int b);
          public int sub(int a,int b);
      }


  • 創建實現類

    1. 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;
          }
      }
  • 發佈服務

    1. 將該應用納入到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>


    2. services配置文件:來指定提供的接口、實現類、服務的名稱;

      在src下新增一個META-INF文件夾在下面新建xfire文件夾,在新建services.xml文件如下:

    3. <?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文件了

  • 發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章