Apache Beehive 是早期 Apache 孵化器項目,提供基於註解的 J2EE 開發框架,簡化 Web Service、EJB、JSP 開發。雖已退休(2010 年),但仍有存量項目在維護。本文提供官方文檔鏈接與核心開發步驟,幫助維護者快速上手。
IBM developerWorks 中文教程(最系統):
https://www.ibm.com/developerworks/cn/opensource/os-beehive/
apache-beehive-1.0.2.zip(含 runtime、controls、netui、文檔)// src/com/example/HelloService.jws
package com.example;
import org.apache.beehive.controls.api.bean.Control;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.soap.SOAPBinding;
@WebService(name = "HelloService", targetNamespace = "https://example.com/")
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT)
public class HelloService {
@WebMethod
public String sayHello(String name) {
return "Hello, " + name + "! (from Beehive JWS)";
}
}
.jws 文件部署在 Web 應用根目錄下,容器自動編譯、發布為 Web Service。@WebService、@WebMethod 為標準 JAX-WS (JSR-181),Beehive 提供額外控件註解支持。@Control
private JdbcControl jdbc; // 自動注入數據源控件
@WebMethod
public Customer getCustomer(int id) {
return jdbc.executeQuery("SELECT * FROM customer WHERE id = ?", id);
}
控件 (@Control) 是 Beehive 核心:聲明式獲取資源 (JDBC、EJB、Web Service、Timer 等),容器管理生命週期。
<web-app>
<listener>
<listener-class>org.apache.beehive.netui.pageflow.FlowController</listener-class>
</listener>
<servlet>
<servlet-name>beehive-jws</servlet-name>
<servlet-class>org.apache.beehive.netui.servlets.JwsServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>beehive-jws</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
</web-app>
# 使用 Ant 構建 (beehive-import.xml 提供宏)
ant build.war
# 產出 dist/app.war,部署到 Tomcat webapps
https://localhost:8080/app/HelloService.jws?WSDLsayHello 方法。| Beehive 功能 | 現代替代方案 (Spring Boot / Jakarta EE) |
|---|---|
| JWS 註解 Web Service | Spring Boot + @RestController / JAX-RS (REST) 或 Spring WS (SOAP) |
| @Control 資源注入 | Spring @Autowired / @Resource + DataSource/JdbcTemplate |
| Page Flow 控制流 | Spring Web Flow / Spring MVC + Thymeleaf / React 前端路由 |
| NetUI JSP 標籤庫 | Thymeleaf / JSP (Jakarta) / 前後端分離 |
新項目強烈建議直接採用 Spring Boot 3+ / Jakarta EE 10+,獲得活躍社區、安全更新、雲原生支持。
Beehive 核心資源集中在 IBM developerWorks 教程。維護舊項目時,重點理解 .jws 部署機制、@Control 注入模型、web.xml Servlet 配置。新項目請直接選擇現代框架,避免技術債務積累。