你好,游客 登录 注册 搜索
背景:
阅读新闻

Jetty JNDI开发实战

[日期:2015-09-19] 来源:Linux社区  作者:chszs [字体: ]

一、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数据库。

Jetty JNDI开发实战

选择中文(简体)语言,并填入
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 的下载地址请点这里

本文永久更新链接地址http://www.linuxidc.com/Linux/2015-09/123303.htm

linux
相关资讯       Jetty  Jetty JNDI 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款