首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

XFire 入門:輕鬆將 POJO 發布為 Web Service

     編輯:Java 相關知識

XFire 是 Codehaus 開源框架,構建 POJO 與 SOA 之間的橋樑,核心優勢在於以極簡方式將普通 Java 物件發布為 Web Service,無需繼承特定基類、實現特定介面,大幅降低 SOA 實施門檻。

核心特性

  • 資料綁定支援:POJO、XMLBeans、JAXB 1.1/2.0、Castor
  • 傳輸協定:HTTP、JMS、XMPP
  • WS-* 標準:SOAP、WSDL、WS-Addressing、WS-Security
  • JSR-181 註解驅動(JDK 5+)
  • 高效能 SOAP 實現
  • 客戶端/服務端代碼生成輔助
  • 無縫整合 Spring、Pico、Plexus

運行環境準備

元件版本建議備註
JDK1.4+ (JSR-181 需 5+)僅用 POJO 綁定 1.4 即可
Servlet 容器Tomcat 5.0.30+ / WebSphere / WebLogic本文以 Tomcat 為例
Xalan最新二進制包XFire 1.2.6 未內建,需自行下載

從零建立 XFire Web 應用

1. 建立標準 Web 目錄結構

%TOMCAT_HOME%/webapps/XFire/
├── WEB-INF/
│   ├── web.xml
│   ├── lib/          # 放入 XFire 所有 jar + xalan jar
│   └── classes/
│       └── META-INF/xfire/
│           └── services.xml

2. 配置 web.xml:註冊 XFireServlet

<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>

3. 建立 services.xml(初始為空 beans)

<beans xmlns="https://XFire.codehaus.org/config/1.0">
</beans>

三步驟發布 POJO 為 Web Service

步驟 1:定義服務介面

package org.vivianj.xfire.pojo;

public interface HelloWorldService {
    String sayHello();
}

步驟 2:實作服務類(純 POJO)

package org.vivianj.xfire.pojo;

public class HelloWorldServiceImpl implements HelloWorldService {
    public String sayHello() {
        return "Hello World!";
    }
}

步驟 3:在 services.xml 宣告服務

<service>
  <name>HelloWorldService</name>
  <namespace>https://vivianj.org/HelloWorldService</namespace>
  <serviceClass>org.vivianj.xfire.pojo.HelloWorldService</serviceClass>
  <implementationClass>org.vivianj.xfire.pojo.HelloWorldServiceImpl</implementationClass>
</service>
元素說明
name服務唯一名稱
namespaceXML 命名空間
serviceClass服務介面全名
implementationClass實作類全名

驗證部署

  1. 編譯 Java 類至 WEB-INF/classes
  2. 啟動 Tomcat
  3. 瀏覽器訪問 https://localhost:8080/XFire/services/HelloWorldService?wsdl
  4. 看到 WSDL 文檔即發布成功

瀏覽器查看 WSDL 效果

進階:JSR-181 註解方式(JDK 5+)

在實作類加上註解,無需 services.xml:

@WebService
@SOAPBinding(style = SOAPBinding.Style.RPC)
public class HelloWorldServiceImpl implements HelloWorldService {
    @WebMethod
    public String sayHello() { return "Hello World!"; }
}

需在 web.xml 加入 load-on-startup 並配置 Spring 掃描,或使用 XFire 的註解掃描機制。

結語

XFire 最大化發揮 POJO 優勢,讓現有業務邏輯零侵入式暴露為 Web Service,是企業以低成本邁向 SOA 的最佳切入點。後續可探索 WS-Security、異步呼叫、Spring 整合等進階主題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved