`

Eclipse里配置Ant 组织的Project(3) -- E中配置Tomcat的JNDI

阅读更多

Eclipse里配置Ant 组织的Project(3)

接着Eclipse里配置Ant 组织的Project(2)(http://rmn190.iteye.com/admin/blogs/174851)一篇博文,在这篇里我将整理利用Eclipse在Tomcat里JNDI/DataSource.

在整理之前先说下我以前对JNDI的认识,说实话,前些天我对Tomcat里内置的JNDI功能一点也不清楚,只是听说过Tomcat里有这个功能,可怎么用,如何配置一点也没接触过.

这些天经过无数的折磨看了Tomcat的docs后,也就是解压Tomcat后这个路径apache-tomcat-5.5.25/webapps/tomcat-docs里的说明,现在可以说一点问题也没有了.

在这篇的整理中我将用一个新的例子来说明.

Step1,在Eclispe里新建一个Dynamic Web Project,可以命名为JndiT,
Step2,新一个jsp文件,以测试JNID的配置是否成功,内容如下:
        <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
            pageEncoding="ISO-8859-1"%>
        <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
        <%@ page import = "javax.sql.DataSource, javax.naming.Context,javax.naming.InitialContext,java.sql.Connection" %>

        <html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Insert title here</title>
        </head>
        <body>
            <%
                Context initCxt = new InitialContext();
                Connection con;
                try{
                    initCxt = (Context)initCxt.lookup("java:comp/env");
                    DataSource ds = (DataSource)
                      initCxt.lookup("jdbc/TestDB");
                    
                    con = ds.getConnection();
                    
                    System.out.println("Connection: "+con);
                }catch(Exception e){
                    e.printStackTrace();
                }
            %>
            
        </body>
        </html>
Step3,在Eclipse里把JndiT项目里的自动生成的那个web.xml内容改为如下:
            <web-app 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"
                version="2.4">
              <description>MySQL Test App</description>
              <resource-ref>
                  <description>DB Connection</description>
                  <res-ref-name>jdbc/TestDB</res-ref-name>
                  <res-type>javax.sql.DataSource</res-type>
                  <res-auth>Container</res-auth>
              </resource-ref>
            </web-app>

        这里将引用待会后面配置的jdbc/TestDB.
Step4,下面看Servers下已配置成的Tomcat v5.5 Server at localhost-config里的server.xml文件.下面通过"Add and Remove Projects"对话框往Tomcat里把刚才新建的项目JndiT添加进来.添加后上面提到的server.xml里会自动生成如下一条:
    <Context docBase="JndiT" path="/JndiT" reloadable="true" source="org.eclipse.jst.j2ee.server:JndiT"/>.

    我们在这里配置DataSource,把上面那条改为如下:
    <Context docBase="JndiT" path="/JndiT" reloadable="true" source="org.eclipse.jst.j2ee.server:JndiT">
              <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="jnditest" password="123456" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
               url="jdbc:sqlserver://192.168.5.10:1433;database=jnditest"/>
      </Context>
至些配置完成.

 

 

右击Tomcat,选择clean,这样JndiT就会自动publish到Eclispe里的内置的Tomcat插件里.这时注意E:\MyTestSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\conf下的server.xml文件.

我们看到下面自动添加了一条如下配置:
    <Context docBase="E:\MyTestSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\JndiT" path="/JndiT" reloadable="true" source="org.eclipse.jst.j2ee.server:JndiT">
        <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="jnditest" password="123456" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
               url="jdbc:sqlserver://192.168.5.10:1433;database=jnditest"/>
      </Context>

(这里补充一下,我觉得上面修改<Context docBase="JndiT" path="/JndiT" reloadable="true" source="org.eclipse.jst.j2ee.server:JndiT"/>时加的那条在Eclipse里启动Tomcat里好像不起作用,而起作用的是Eclipse里自动生成的那条.)



在浏览器里输入http://127.0.0.1:8080/JndiT/test.jsp,虽然页面上一篇空白,但不必着急,看Eclipse里的Console,下面已有期待已久的输出了:

    Connection: jdbc:sqljdbc://, UserName=jnditest, Microsoft SQL Server 2005 JDBC Driver


这个基本的配置OK了.下一篇中,再往里加上Spring对JNDI的支持.

9
6
分享到:
评论

相关推荐

    eclipse+mysql+tomcat配置JNDI

    在Tomcat中,JNDI常用于配置数据库连接池,使得多个Web应用可以共享同一个数据库连接。 配置JNDI的步骤如下: 1. **安装与配置MySQL**: 首先确保你已经安装了MySQL数据库,并创建了所需的数据库和用户。你需要...

    eclipse与glassfish3.1.1使用配置-连接池配置-JNDI配置[归纳].pdf

    本文档旨在指导读者如何在 Eclipse 中配置 GlassFish 3.1.1,实现连接池配置和 JNDI 配置。同时,也会解决在部署过程中可能出现的异常。 一、GlassFish 3.1.1 简介 GlassFish 是一个开源的 Java EE 应用服务器,由 ...

    tomcat-jndi

    Tomcat中的JNDI主要分为两部分:全局JNDI和Web应用局部JNDI。全局JNDI通常用于配置跨多个Web应用的共享资源,如全局数据源。这些资源在`$CATALINA_HOME/conf/server.xml`文件中的`&lt;GlobalNamingResources&gt;`元素下...

    Tomcat中JNDI原理

    ### Tomcat中JNDI原理详解 #### 一、引言 Java Naming and Directory Interface (JNDI) 是Java平台中用于访问命名和目录服务的API。它为开发者提供了访问各种命名和目录服务(如DNS、LDAP等)的统一接口。在Tomcat...

    JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar

    $ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar [-C] [command] [-A] [address] where: -C - command executed in the remote classfile. (optional , default command is "open /Applications/...

    jndi-JNDI-Injection-Exploit

    java asm jndi_JNDI-Injection-Exploit,用于log4j2漏洞验证 可执行程序为jar包,在命令行中运行以下命令: $ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar [-C] [command] [-A] [address] 其中: -C ...

    tomcat配置jndi数据源

    Tomcat 配置 JNDI 数据源 Tomcat 是一个流行的 Java Web 服务器,JNDI(Java Naming and Directory Interface)是 Java 中的一种命名和目录接口规范。Tomcat 中的 JNDI 数据源是指将数据库连接信息注册到 JNDI ...

    JNDI-Injection-Exploit-1.0-SNAPSHOT-all

    该压缩包"JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar"可能包含了一个JNDI注入攻击的示例或者测试工具,"SNAPSHOT"通常表示这是一个开发中的版本,可能尚未经过完整测试,因此可能存在漏洞或不稳定性。使用这样的...

    Tomcat配置JNDI数据源的N种方法

    Tomcat配置JNDI数据源的N种方法

    apache-tomcat-6.0.29.zip

    在本压缩包"apache-tomcat-6.0.29.zip"中,包含的是Apache Tomcat 6.0.29版本的源码、配置文件、库文件以及相关的文档资料。 Tomcat 6.0.29是Apache Tomcat的一个稳定版本,发布于2010年,支持Java EE 5规范。以下...

    apache-tomcat-8.5.97-windows-x.zip

    - 配置主要通过修改conf目录下的server.xml文件,可以设置端口号、连接器、全局JNDI资源等。 - 可以通过环境变量CATALINA_HOME指向Tomcat的根目录来设置路径。 6. **部署应用程序**: - 将WAR文件直接放入...

    JNDI-Injection-Exploit-1.0-SNAPSHOT-all.zip

    在压缩包中有一个文件名为 "JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar",这很可能是一个Java可执行的jar文件,其中封装了用于演示JNDI注入攻击或者进行安全测试的代码。用户可以通过运行这个jar文件来触发或者...

    tomcat配置JNDI数据源

    【标题】:“Tomcat配置JNDI数据源” 【描述】:“在Tomcat服务器上配置JNDI数据源,特别是通过DBCP连接池的方式” 【标签】:“tomcat,配置,JNDI数据源” 【内容】:配置JNDI数据源在Java Web应用程序中是一个...

    tomcat6.0 配置jndi

    在Tomcat6.0中配置JNDI,主要是为了实现应用中的数据源管理,使得多个应用可以共享一个数据库连接池,提高资源利用率和系统性能。 **一、JNDI的基本概念** JNDI提供了一个统一的接口,让开发者可以查找和绑定各种...

    tomcat6中配置JNDI方法

    ### Tomcat6中配置JNDI方法详解 #### 一、引言 在Java Web开发过程中,连接数据库是一项基础而重要的工作。常见的连接方式包括直接使用JDBC(Java Database Connectivity)以及通过JNDI(Java Naming and Directory...

    Tomcat JNDI配置

    Tomcat JNDI 配置是 Java Web 应用程序中的一种常见配置,用于将数据库连接信息以 JNDI(Java Naming and Directory Interface)的形式存储在 Tomcat 服务器中,以便于应用程序可以通过 JNDI 来获取数据库连接信息。...

Global site tag (gtag.js) - Google Analytics