第一次接觸 EJB(Enterprise JavaBeans),選型:Eclipse 3.0 + JBoss 3.2.5 + JBossIDE 1.3.30 + Sybase Adaptive SQL Anywhere 9.0。雖然項目可用可不用,但作為學習機會,硬著頭皮啃了兩天,記錄踩坑過程供後人參考。
誤區:直接解壓到 plugins 目錄,期望在 Customize Perspective 中出現新建專案選項。
正解:使用 Eclipse 內建更新管理器:
Help → Software Updates → Find and Install… → Search for new features → New Remote Site
添加 JBossIDE 更新站點 URL,按提示安裝即可。
後續:按 JBossIDE Tutorial 配置 Default Server。
com.sun.tools.javac.Main 找不到原因:JSP 編譯需要 JDK 的 tools.jar,但容器用的是 JRE。
解決:Window → Preferences → Java → Installed JREs → Edit → Add External JARs,選擇 JAVA_HOME/lib/tools.jar。
注意:環境變量 JAVA_HOME 指向 JDK 根目錄。
參考 Huihoo 論壇 hsqldb-service.xml 模板改寫。關鍵步驟:
SQL Anywhere 9/java/jdbcdrv.zip 複製到 jboss-3.2.5/server/default/lib/。docs/examples/jca/sybase-ds.xml 到 server/default/deploy/。<local-tx-datasource>
<jndi-name>jdbc/SybaseDB</jndi-name>
<connection-url>jdbc:sybase:Tds:Gibeon:2638/QZCFTraining?JCONNECT_VERSION=4</connection-url>
<driver-class>com.sybase.jdbc.SybDriver</driver-class>
<user-name>DBA</user-name>
<password>SQL</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.SybaseExceptionSorter</exception-sorter-class-name>
</local-tx-datasource>
index.jsp):
<%@ page import="java.sql.*, javax.sql.DataSource, javax.naming.InitialContext" %>
<%
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:/jdbc/SybaseDB");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM Trainee");
while (rs.next()) out.println(rs.getString("name") + "<br>");
conn.close();
%>
訪問 https://localhost:8080/oracle-test 即可看到查詢結果。
數據庫讀寫中文出現亂碼,後續需研究:
① 數據庫字符集設置 ② JDBC URL 加 charset=xxx ③ JSP pageEncoding ④ 連接池字符集配置。
EJB 入門核心在於:IDE 插件正確安裝 → JDK/JRE 配置正確 → 數據源 XML 按模板改 → JNDI 名稱前後一致。文檔與社區範例是最好的老師,遇到問題先找官方 Tutorial 和論壇實戰帖。