JNDI是標准化的Java命名系統接口,在Jetty容器中,可以對JNDI進行編譯和開發。也可以把JNDI的資源配置到Jetty中,下面就來介紹一下如何在Linux系統Jetty環境下進行JNDI的開發。
一、開發環境
本文使用到的工具可列表如下:
1)JDK 8.0.25
2)Maven 3.3.3
3)Eclipse JEE 4.5.0(mars版)
4)Jetty 9.3.2
5)H2 Database Engine 1.4.188
注意,H2數據庫可以通過單個JAR包運行,無需另外安裝。
另外,假定我們要創建jcgexamle的數據表,它有兩列,分別為ID列和ARTICLE_NAME列。
C:\jtools\h2\bin》java -cp h2-1.4.188.jar org.h2.tools.Server
TCP server running at tcp://192.168.1.103:9092 (only local connections)
PG server running at pg://192.168.1.103:5435 (only local connections)
Web Console server running at http://192.168.1.103:8082 (only local connections)
此命令立即啟動H2數據庫的服務器模式,並自動打開浏覽器,連接到H2的Web控制台,讓用戶創建和配置H2數據庫。
選擇中文(簡體)語言,並填入
JDBC URL:jdbc:h2:tcp://localhost/~/jcgdb
用戶名:sa
點擊測試連接按鈕,返回“測試成功”的信息。此時,H2數據庫引擎會自動在文件系統的home目錄中創建名為jcgdb.mv.db的數據庫文件,然後我們可以運行下面的腳本來創建數據表jcgexamle,並插入兩行記錄:
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’);
至此,數據庫已經准備好了。
二、構建Demo項目
1、在Eclipse環境創建Maven項目
Group Id:com.ch.snippets.enterprise
Artifact Id:jetty-jndi-demo
Packaging:war
2、添加依賴包
在pom.xml配置文件中添加以下依賴包:
org.eclipse.jetty:jetty-server
org.eclipse.jetty:jetty-webapp
org.eclipse.jetty:jetty-plus
org.eclipse.jetty:jetty-jndi
com.h2database:h2
pom.xml配置文件具體如下:
《project xmlns=“http://maven.apache.org/POM/4.0.0” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”》
《modelVersion》4.0.0《/modelVersion》
《groupId》com.ch.snippets.enterprise《/groupId》
《artifactId》jetty-jndi-demo《/artifactId》
《version》0.0.1-SNAPSHOT《/version》
《packaging》war《/packaging》
《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》
《/project》
以上就是如何在Linux Jetty環境下進行JNDI的開發的全部內容了,jetty 中定義的資源都需要在 web.xml 中進行一次申明,如此 jetty 才會把默認上下文中資源在 java:comp/env 下做一個映射。