`
qys2010
  • 浏览: 127274 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Tomcat下的JNDI编程

    博客分类:
  • java
阅读更多
Tomcat下的JNDI编程---数据源(mysql)
一.环境:

    1.tomcat6.0

    2.jdk1.6

    3.mysql5



二.注意事项与相关描述(重要):

    1.确认以上3个软件版本与运行情况均正常.

    2.如果你之前已经搞整过,又在网上找了半天相关信息结果还是报这样那样的错误(找不到包,找不到上下文环境变量,绑定什么的等等),那么就请全部环境还原(主要是配置文件).

    3.除了数据库驱动jar包(MYSQL的是mysql-connector-java-5.1.6-bin.jar)其它什么包都不用加,且需要把这个JAR包放在Tomcat的全局LIB和你工程的LIB下.如果测试中报找不到包错误,那应该是你tomcat的问题.

    4.测试连接的时候一定要确定是在容器里执行的,比如写在JSP中.如果写在JAVA中写MAIN函数调用是不行的.

    5.如果根据我讲的还是不行,我说如果,那么请给春哥或曾哥打电话说你信他们,之后再重起TOMCAT保管可以(你信吗?).



三.步骤:

    1.修改\Tomcat 6.0\conf\context.xml,在<Context>标签中间加入(相关用户名,密码,端口什么的肯定还是要自己改一下).

Xml代码
<Resource name="jdbc/mysql"    
  auth="Container"    
  type="javax.sql.DataSource"    
  driverClassName="com.mysql.jdbc.Driver"    
  url="jdbc:mysql://localhost:3306/mm?autoReconnect=true&amp;characterEncoding=UTF-8"    
  username="root"    
  password="root"    
  maxActive="100"    
  maxIdle="30"    
  maxWait="10000"    
  factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"    
  removeAbandoned="true"    
  removeAbandonedTimeout="300"    
  logAbandoned="true"    
/>   

<Resource name="jdbc/mysql" 
  auth="Container" 
  type="javax.sql.DataSource" 
  driverClassName="com.mysql.jdbc.Driver" 
  url="jdbc:mysql://localhost:3306/mm?autoReconnect=true&amp;characterEncoding=UTF-8" 
  username="root" 
  password="root" 
  maxActive="100" 
  maxIdle="30" 
  maxWait="10000" 
  factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" 
  removeAbandoned="true" 
  removeAbandonedTimeout="300" 
  logAbandoned="true" 
/> 
2.测试代码

  index.jsp

Html代码
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> 
<%@ page import="com.neo.util.tomcatDataJndi.*" %> 
<%  
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> 
    <%  
        TestJndi tj = new TestJndi();  
    %> 
    This is my JSP page. <br> 
  </body> 
</html> 

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ page import="com.neo.util.tomcatDataJndi.*" %>
<%
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>
  <%
TestJndi tj = new TestJndi();
  %>
    This is my JSP page. <br>
  </body>
</html>


  TestJndi.java

Java代码
package com.neo.util.tomcatDataJndi;  
 
import java.sql.Connection;  
import java.sql.SQLException;  
import java.util.Hashtable;  
 
import javax.naming.Context;  
import javax.naming.InitialContext;  
import javax.naming.NamingException;  
import javax.sql.DataSource;  
 
public class TestJndi {  
    private Connection conn;  
    private Context ct;  
      
    public TestJndi(){  
        try {  
            ct = new InitialContext();   
            DataSource dataSource = (DataSource)ct.lookup("java:comp/env/jdbc/mysql");  
            conn = dataSource.getConnection();  
            System.out.print(conn.getAutoCommit());  
        } catch (NamingException e) {  
            e.printStackTrace();  
        } catch (SQLException e) {  
            e.printStackTrace();  
        }finally{  
            if(conn!=null)  
                try {  
                    conn.close();  
                } catch (SQLException e) {  
                    e.printStackTrace();  
                }   
            if(ct!=null)  
                try {  
                    ct.close();  
                } catch (NamingException e) {  
                    e.printStackTrace();  
                }   
        }  
    }  

分享到:
评论

相关推荐

    intellij idea使用tomcat开发时自动部署jndi数据源

    在IntelliJ IDEA中,为了让项目在启动Tomcat时自动部署这个数据源,我们需要在项目的`WEB-INF`目录下创建一个`context.xml`文件,将之前在`server.xml`中的`Resource`标签复制到这里。这将确保每次应用启动时,这个...

    Apache Tomcat 6高级编程 源代码

    - Tomcat的JNDI(Java Naming and Directory Interface)资源管理数据库连接池,有效管理数据库连接可以提高性能和减少资源消耗。 6. **安全配置** - 学习如何设置用户认证、角色分配、访问控制,以及SSL/TLS配置...

    Apache Tomcat 6高级编程英文版

    本资源为"Apache Tomcat 6高级编程英文版",对于深入理解和优化Tomcat的使用具有重要价值。 在学习这本书时,你可以掌握以下关键知识点: 1. **Tomcat架构**:理解Tomcat的内部工作原理,包括Catalina核心引擎、 ...

    eclipse+mysql+tomcat配置JNDI

    6. **编程式使用JNDI查找** 在Java代码中,我们可以使用`InitialContext`类来查找并获取数据源: ```java Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env...

    tomcat6.0 javaweb编程必备

    除此之外,Tomcat还支持JNDI(Java Naming and Directory Interface),这使得应用可以查找和使用服务器上的资源,如数据源。同时,它也集成了JMX(Java Management Extensions),提供了管理和监控服务器的能力。...

    tomcat6_jndi.pdf

    完成上述配置后,可以通过编程的方式访问JNDI资源。 ##### 3.1 使用Java API访问 ```java import javax.naming.Context; import javax.naming.InitialContext; import javax.sql.DataSource; import java.sql....

    jndi连接池帮助文档

    它允许开发者在无需直接与底层命名服务器交互的情况下查找和使用注册的对象,降低了编程复杂性。JNDI提供了一个抽象层,使得应用可以查找和绑定对象,如数据源、邮件服务器等,而这些对象可以在不同的命名或目录服务...

    myeclipse+tomcat开发环境搭建&tomcat;编程规范

    本文将详细阐述如何使用MyEclipse集成开发环境与Tomcat服务器搭建开发环境,并介绍相关的Tomcat编程规范,帮助开发者更好地理解和实践。 首先,我们来看如何配置MyEclipse与Tomcat。MyEclipse是一款强大的Java EE...

    tomcat-7.0.108.zip

    8. **JNDI(Java Naming and Directory Interface)**:Tomcat支持JNDI,允许在Web应用中查找和绑定资源,如数据源、邮件会话等。 9. **部署与更新**:可以通过将Web应用的WAR文件放入`webapps`目录或使用管理工具...

    apache-tomcat-5.5.29

    7. **JNDI(Java Naming and Directory Interface)服务**:Tomcat支持JNDI,允许应用程序查找和绑定资源,如数据源、邮件会话等。 8. **国际化与本地化**:Tomcat支持多语言环境,可以在web应用中通过Locale对象和...

    jndi连接数据库配置方法

    2. **编程接入JNDI**: 在Java代码中,你可以使用`InitialContext`类来查找之前配置的数据源。首先,创建一个`InitialContext`实例,然后调用其`lookup()`方法,传入你之前设定的JNDI名称,例如`"java:comp/env/...

    tomcat7本地服务器

    压缩包内的文件“apache-tomcat-7.0.53”是Tomcat 7.0.53的完整安装包,包含了服务器的所有组件,包括核心引擎、Servlet容器、JSP引擎、JNDI服务、WebSocket支持等。安装和配置这个版本的Tomcat,开发者可以按照以下...

    apache-tomcat-8.5.15

    6. **JNDI(Java Naming and Directory Interface)**:Tomcat支持JNDI服务,可以用来查找和绑定资源,如数据源、邮件会话等。 7. **热部署**:Tomcat允许在不重启服务器的情况下更新Web应用,只需将新的WAR文件放...

    java JNDI总结

    JNDI支持多种配置方式,通常情况下,开发者会通过以下步骤来配置JNDI: - **配置数据源**:在服务器端(如JBoss、Tomcat等),需要配置数据源以便为应用程序提供数据库连接。这通常是在服务器的配置文件中完成的,...

    Aoache—tomcat6.0

    7. **JNDI(Java Naming and Directory Interface)**:Tomcat支持JNDI服务,允许在Web应用中查找和绑定资源,如数据源、邮件会话等。 8. **安全性**:Tomcat提供了多种安全机制,包括SSL/TLS加密、角色基础的访问...

    Tomcat 8.0.43

    5. **JNDI(Java Naming and Directory Interface)**:Tomcat支持JNDI,用于在Java环境中查找和绑定资源,如数据源、邮件会话等。 6. **Clustering和Session复制**:Tomcat支持集群配置,可以在多个服务器间复制...

    apache-tomcat-6.0.18

    Tomcat支持Servlet和JSP,Servlet是一种Java编程语言,用于扩展服务器的功能,而JSP则是用于创建动态网页的标记语言,它允许开发者将业务逻辑和页面展示分离。 安装Apache Tomcat 6.0.18.exe的过程通常包括以下步骤...

    tomcat源码

    3. **Naming**:Tomcat支持JNDI(Java Naming and Directory Interface),允许应用查找和绑定资源。这部分源码涉及到如何管理和使用全局命名空间。 4. **Lifecycle**:在Tomcat中,每个组件都有一个生命周期,包括...

    apache-tomcat-7.0.94

    - **配置**:`server.xml`是主配置文件,其中包含了Tomcat的全局设置,如端口号、连接器配置、全局JNDI资源等。 - **启动和停止**:使用`bin`目录下的`catalina.sh`(Unix/Linux)或`catalina.bat`(Windows)脚本来...

    apache-tomcat-8.0.35.exe下载

    Tomcat对Servlet和JSP的支持使得开发者能够用Java编写Web应用,而无需学习其他编程语言。 Apache Tomcat 8.0.35 版本是一个稳定版,它包含了之前的错误修复和性能优化。此版本可能包含安全更新,确保在处理用户请求...

Global site tag (gtag.js) - Google Analytics