2021-05-12 14:32:11
Jetty JNDI開發實戰
一、JNDI介紹
JNDI即Java Naming and Directory Interface,Java命名和目錄介面,是Oracle公司提供的一種標準的Java命名系統介面,允許Java用戶端根據命名發現或查詢資料和物件。JNDI規範提供了一組標準的獨立於命名系統的API,這些API構建在與命名系統有關的驅動之上,有助於將應用與實際的資料來源相分離,因此不管應用存取的是LDAP、RMI、DNS、還是其他的目錄服務。像資料來源、郵件伺服器、訊息佇列等都可以通過JNDI進行發現,JNDI的查詢策略把應用程式從外部資源中抽象出來,並使得外部資源更易於設定。
本文詳述在Jetty中使用JNDI進行查詢。我們先註冊一個JDBC資料來源,再通過JNDI查詢並存取此資料來源。然後可以看到JNDI資源是如何設定到獨立Jetty中的。
二、開發環境
本文使用到的工具可列表如下:
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:jtoolsh2bin>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>
Jetty伺服器的安裝設定詳解 http://www.linuxidc.com/Linux/2015-09/123299.htm
使用Jetty作為嵌入式伺服器 http://www.linuxidc.com/Linux/2013-07/86983.htm
Jetty 原始碼分析 http://www.linuxidc.com/Linux/2013-10/90986.htm
Jetty安裝學習並展示 http://www.linuxidc.com/Linux/2014-05/101993.htm
Jetty在Eclipse中的安裝 http://www.linuxidc.com/Linux/2013-10/90991.htm
Linux(RedHat 5.8)下 安裝Jetty 部署 使用 http://www.linuxidc.com/Linux/2014-10/108342.htm
相關文章