姚絲麥
來的太晚,去的太快
首先在eclipse下新建一个名为jndi的动态web项目;
打开其目录下的web.xml,进行配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" 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">
    
<display-name>
    jndi
</display-name>
    
    
<resource-ref>
      
<res-ref-name>jdbc/oracle</res-ref-name>
      
<res-type>javax.sql.DataSource</res-type>
      
<res-auth>Container</res-auth>
    
</resource-ref>

    
    
<welcome-file-list>
        
<welcome-file>index.html</welcome-file>
        
<welcome-file>index.htm</welcome-file>
        
<welcome-file>index.jsp</welcome-file>
        
<welcome-file>default.html</welcome-file>
        
<welcome-file>default.htm</welcome-file>
        
<welcome-file>default.jsp</welcome-file>
    
</welcome-file-list>
</web-app>


然后对server.xml进行配置:
<?xml version="1.0" encoding="UTF-8"?>
<Server>
  
<Listener className="org.apache.catalina.core.AprLifecycleListener"/>
  
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
  
<Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
  
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
  
<GlobalNamingResources>
    
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
    
<Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>
  
</GlobalNamingResources>
  
<Service name="Catalina">
    
<Connector connectionTimeout="20000" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="80" redirectPort="8443">
    
</Connector>
    
<Connector connectionTimeout="-1" port="8009" protocol="AJP/1.3" redirectPort="8443">
    
</Connector>
    
<Engine defaultHost="localhost" name="Catalina">
      
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
      
<Host appBase="webapps" name="localhost">
          
<Context docBase="jndi" path="/jndi" reloadable="true" source="org.eclipse.jst.j2ee.server:jndi">
              
<Resource
              
name="jdbc/oracle"
              type
="javax.sql.DataSource"
              driverClassName
="oracle.jdbc.driver.OracleDriver"
              password
="tiger"
              maxIdle
="2"
              maxWait
="5000"
              username
="scott"
              url
="jdbc:oracle:thin:@localhost:1521:guitar"
              maxActive
="4"/>
          
</Context>

      
</Host>
    
</Engine>
  
</Service>
</Server>

最后写一个名为test.jsp的测试页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%!final String JNDINAME = "java:comp/env/jdbc/oracle";%>
<%
    Connection conn 
= null;
    try {
        
// 初始化查找命名空间
        Context ctx 
= new InitialContext();
        
// 找到DataSource
        DataSource ds 
=
 (DataSource) ctx.lookup(JNDINAME);
        conn 
= ds.getConnection();
        Statement st 
= conn.createStatement();
        ResultSet rs 
= st.executeQuery("select * from emp");
        
while (rs.next()) {
            
int size = rs.getMetaData().getColumnCount();
            
for (int i = 1; i <= size; i++) {
                out.println(rs.getString(i) 
+ "<br/>");
            }
        }

    } catch (Exception e) {
        System.out.println(e);
    }
%>
<%=conn%>
<%
    
// 将连接重新放回到池中
    conn.close();
%>

至此,配置对oracle的jndi数据源已经列出相关最重要的配置代码,需要注意的是,必须在项目中导入相对应的数据库驱动jar包,本例子中导入ojdbc14.jar.需要注意的是代码中加粗部分,可能需要根据你的实际情况有所改变,JNDINAME的名字是一一对应的.server.xml的配置有许多方法,这里就不一一细述,网上例子很多.

本人水平有限,欢迎高手和我交流批评^_^

posted on 2008-07-09 08:55 姚絲麥 阅读(2784) 评论(2)  编辑  收藏 所属分类: java
Comments
  • # re: Eclipse3.4+wtp+tomcat5.5环境下配置对oracle数据库的jndi数据源
    隔叶黄莺
    Posted @ 2008-07-09 09:31
    基本上,现在很少去修改全局性的 server.xml 来初始化资源,一般都会在 %TOMCAT_HOME%\conf\Catalina\localhost 目录下建立一个与项目同名的 xml 文件,如 jndi.xml,在其中写上

    <Context docBase="jndi" path="/jndi" reloadable="true" source="org.eclipse.jst.j2ee.server:jndi">
    <Resource
    name="jdbc/oracle"
    type="javax.sql.DataSource"
    driverClassName="oracle.jdbc.driver.OracleDriver"
    password="tiger"
    maxIdle="2"
    maxWait="5000"
    username="scott"
    url="jdbc:oracle:thin:@localhost:1521:guitar"
    maxActive="4"/>
    </Context>

    在有多个应用的时候可以保持隔离和独立的配置。  回复  更多评论   
  • # re: Eclipse3.4+wtp+tomcat5.5环境下配置对oracle数据库的jndi数据源
    姚絲麥
    Posted @ 2008-07-09 10:15
    嗯,在eclipse(wtp插件)环境下开发,每个应用的Context 配置都在统一的一个server.xml文件中,而且是动态配置的,所以也很方便!  回复  更多评论   

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问