萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux Jetty 環境開發 JNDI 資料來源完整實作:Maven、H2、Eclipse

在 Jetty 容器中配置 JNDI 資料來源,可讓 Web 應用透過 java:comp/env/jdbc/... 查找 DataSource,實現資料庫連線池共享與環境解耦。本文以 Maven 專案、H2 資料庫、Eclipse IDE 為例,完整示範從建立資料表到 Jetty 整合的流程。

開發環境

  • JDK 8u25、Maven 3.3.3、Eclipse JEE 4.5 (Mars)
  • Jetty 9.3.2、H2 Database Engine 1.4.188(單一 JAR 即可執行)

1. 建立 H2 測試資料庫

C:\jtools\h2\bin> java -cp h2-1.4.188.jar org.h2.tools.Server
# 啟動 TCP/PG/Web Console,瀏覽器開啟 https://localhost:8082
  • JDBC URL:jdbc:h2:tcp://localhost/~/jcgdb,用戶 sa,密碼空白。
  • 建立測試表並插入資料:
CREATE CACHED TABLE PUBLIC.JCGEXAMPLE (
  ID INTEGER,
  ARTICLE_NAME VARCHAR(255)
);
INSERT INTO JCGEXAMPLE VALUES (1, 'Jetty JNDI Example');
INSERT INTO JCGEXAMPLE VALUES (2, 'Jetty JMX Example');
H2 Web Console 建立資料表

2. Maven 專案建立與依賴

Group Id: com.ch.snippets.enterprise
Artifact Id: jetty-jndi-demo
Packaging: war

pom.xml 關鍵依賴:

<dependencies>
  <dependency><groupId>org.eclipse.jetty</groupId><artifactId>jetty-server</artifactId><version>9.3.2.v20150730</version></dependency>
  <dependency><groupId>org.eclipse.jetty</groupId><artifactId>jetty-webapp</artifactId><version>9.3.2.v20150730</version></dependency>
  <dependency><groupId>org.eclipse.jetty</groupId><artifactId>jetty-plus</artifactId><version>9.3.2.v20150730</version></dependency>
  <dependency><groupId>org.eclipse.jetty</groupId><artifactId>jetty-jndi</artifactId><version>9.3.2.v20150730</version></dependency>
  <dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><version>1.4.188</version></dependency>
</dependencies>

3. Jetty JNDI 設定重點

  • jetty-plus 與 jetty-jndi 模組必須同時在 classpath。
  • 在 jetty.xml 或 WEB-INF/jetty-env.xml 定義 New<Resource>,指定 name="jdbc/jcgdb、type=javax.sql.DataSource、H2 連線參數。
  • web.xml 需宣告 <resource-ref> 映射至 java:comp/env/jdbc/jcgdb,Jetty 才會將資源綁定至 JNDI 子上下文。

完成部署後,應用即可透過 @Resource(lookup="java:comp/env/jdbc/jcgdb") 或 InitialContext.lookup() 取得 DataSource。

copyright © 萬盛學電腦網 all rights reserved