歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Jetty JNDI開發實戰

Jetty JNDI開發實戰

日期:2017/2/28 13:57:43   编辑:Linux教程

一、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:\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>

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

Jetty 的詳細介紹:請點這裡
Jetty 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved