首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Tomcat上的JNDI编程

2012-09-20 
Tomcat下的JNDI编程Tomcat下的JNDI编程---数据源(mysql)一.环境:1.tomcat6.02.jdk1.63.mysql5 二.注意事项

Tomcat下的JNDI编程
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();  
                }   
        }  
    }  

热点排行