配置Jetty的JNDI绑定

转载 2012年03月27日 10:07:18

配置 JNDI绑定

一、 此处绑定的数据源是以 DBCP 为实现。首先必须将数据库驱动(这里用了MYSQL数据库)和DBCP所需要的 Jar 包复制到 Jetty 根目录的 lib 目录下。DBCP主要需要以下3个文件:
Commons-dbcp.jar
Commons-pool.jar
Commons-collections.jar
二、 在Jetty根目录的contexts下建立wind.xml(该文件名为了增加可读性最好与项目名相同)
wind.xml的内容如下:
--------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<!-- 配置一个WEB应用 -->
<Configure class="org.mortbay.jetty.webapp.WebAppContext">
<Set name="contextPath">/wind</Set>
<Set name="resourceBase">E:/StartPortableApps/jspTest</Set>

<!-- 配置第一个环境变量 -->
<New id="woggle" class="org.mortbay.jetty.plus.naming.EnvEntry">
<Arg>woggle</Arg>
<Arg type="java.lang.Integer">4000</Arg>
</New>

<!-- 配置第二个环境变量 -->
<New id="wiggle" class="org.mortbay.jetty.plus.naming.EnvEntry">
<Arg>wiggle</Arg>
<Arg type="boolean">true</Arg>
</New>

<!-- 创建数据源 -->
<New id="ds" class="org.apache.commons.dbcp.BasicDataSource">
<Set name="driverClassName">com.mysql.jdbc.Driver</Set>
<Set name="url">jdbc:mysql://localhost:3306/test</Set>
<Set name="username">root</Set>
<Set name="password">wind</Set>
<Set name="maxActive" type="int">100</Set>
<Set name="maxIdle" type="int">30</Set>
<Set name="maxWait" type="int">1000</Set>
<Set name="defaultAutoCommit" type="boolean">true</Set>
<Set name="removeAbandoned" type="boolean">true</Set>
<Set name="removeAbandonedTimeout" type="int">60</Set>
<Set name="logAbandoned" type="boolean">true</Set>
</New>

<!-- 将实际的数据源绑定到 jdbc/mydatasource 这个 JNDI 名 -->
<New id="mydatasource" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>jdbc/mydatasource</Arg>
<Arg><Ref id="ds"/></Arg>
</New>
</Configure>
--------------------------------------------------------------------------------------------------------------------------
三、 下面是测试该JNDI的jsp和servlet。
(1)在E:/StartPortableApps/jspTest(wind.xml设置的虚拟目录的绝对路径)下创建:index.jsp
<%@ page language="java" pageEncoding="GB2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'index.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
<form method="post" action="aa" name="f1"><p>&nbsp;<input type="submit" value="test" name="button1"></p></form>
</body>
</html>
(2)TestServlet.java内容如下:
package lee;

import java.io.IOException;
import java.io.PrintStream;
import java.sql.*;
import javax.naming.InitialContext;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import javax.sql.DataSource;

public class TestServlet extends HttpServlet
{
InitialContext ic;

public TestServlet()
{
}

public void destroy()
{
super.destroy();
}

protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
PrintStream out = new PrintStream(response.getOutputStream());
try
{
out.println(ic.lookup("wiggle"));
out.println(ic.lookup("woggle"));
DataSource ds = (DataSource)ic.lookup("jdbc/mydatasource");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
for(ResultSet rs = stmt.executeQuery("select * from echo_message"); rs.next(); out.println(rs.getString(2)));
}
catch(Exception e)
{
e.printStackTrace();
}
}

public void init(ServletConfig config)
throws ServletException
{
super.init(config);
try
{
ic = new InitialContext();
}
catch(Exception e)
{
throw new ServletException(e);
}
}
}
(3)web.xml内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>TestServlet</servlet-name>
<servlet-class>lee.TestServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/aa</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

内嵌jetty配置jndi数据源

最近一直忙着玩,书业荒废了深感罪孽深重,在此面壁思过10分钟…… 自从项目部署环境换上jboss后,开发效率低了很多,相对jetty而言jboss还是有些重,由于各方面事情的影响也惰于调整优...

jetty配置jndi数据源

1.下载jetty服务器(8.1.0.RC2),解压到任意目录下   http://dist.codehaus.org/jetty/jetty-hightide-8.1.0/jetty-highti...

gradle 使用技巧一(jetty jndi,多环境配置)

之前使用过几次maven,真正使用发现有点麻烦包括XML的繁冗,不够灵活,学习曲线陡峭。因为对grails和groovy很熟悉,发现gradle是个很合适的构建工具。gradle是以 Groovy 语...

eclipse 的jetty配置jndi数据源

使用maven工程的同学都会用到eclipse的run jetty插 件,而大多的工程都要链接数据库,数据库的配置一般都是通过jndi来配置的,这篇文章介绍如何使用该插件来配置jndi数据库源 1....

Hibernate_SessionFatory绑定JNDI

  • 2016年05月30日 22:40
  • 3KB
  • 下载

绑定jndi并载入数据源

public Connection getConnection() throws SQLException { Connection conn; ...

tomcat架构分析 (JNDI体系绑定)

出处:http://gearever.iteye.com  在tomcat架构分析 (JNDI配置)一文里,以配置JDBC数据库连接为例,介绍了tomcat中常用的JNDI配置的几种用法。使...

用JNDI绑定tomcat数据源

JDNI 说的简单点就是 为某个Java对象起个名字,从而让其它程序可以通过该名字来访问该数据源对象。 jsp开发中调用tomcat数据库连接池,可能很多朋友都会,下面这段代码相信用过的人都...

Jetty JNDI开发实战(上)

Jetty JNDI开发实战(上)作者:chszs,版权所有,未经同意,不得转载。博主主页:http://blog.csdn.net/chszs一、JNDI介绍JNDI即Java Naming and...
  • chszs
  • chszs
  • 2015年08月30日 20:13
  • 1468

JNDI和在Jetty中的运用

转载请注明出处 http://blog.csdn.net/lovingprince     第一部分 引子 我们应用想用统一的方式去查找我们想要的服务,通过格式化的名称例如:jdbc:co...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:配置Jetty的JNDI绑定
举报原因:
原因补充:

(最多只允许输入30个字)