tomcat JNDI 配置

 

 

配置tomcat 5.5.27 JNDI

http://localhost:8000/admin

Tomcat Server - Service - Host - 你的项目 - Resource - Data Source 在这里配置

不在最外层的 Resource  配置

 

 

Name xxx is not bound in this Context 

 

把红色的加上

spring 配置文件:

<bean id="dataSourceFc"
  class="org.springframework.jndi.JndiObjectFactoryBean">
  <property name="jndiName" value="java:comp/env/fcDataSource"></property>
 </bean>

 

weblogic 是不用  java:comp/env/

 

这样就行了

 

web.xml  不用

<resource-ref>
  <description>DB Connection</description>
  <res-ref-name>appDataSource</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
 </resource-ref>

 

不要

Tomcat/conf/Catalina/localhost/你的项目.xml

 

不要

Tomcat/conf/server.xml 里加

 

不要

Tomcat/conf/context.xml 里加

<Resource name="appDataSource" auth="Container"
                  type="javax.sql.DataSource" password="stmg"
                  driverClassName="oracle.jdbc.driver.OracleDriver"
                  maxIdle="2"
                  maxWait="5000"
                  username="stmg"
                  url="jdbc:oracle:thin:@127.0.0.1:1521:oranb"
                  maxActive="4"/>

 

 

 

附:程序中调用 (没试)

Context ctx = new InitialContext();
        if (ctx == null)
          throw new Exception("Boom - No Context");
  
        DataSource ds =
          (DataSource) ctx.lookup(
          "java:comp/env/jdbc/hellohibernate");
  
        if (ds != null) {
          Connection conn = ds.getConnection();
  
          if (conn != null) {
            foo = "Got Connection " + conn.toString();
            Statement stmt = conn.createStatement();
            ResultSet rst =
              stmt.executeQuery(
              "select username,id from user");
            if (rst.next()) {
              foo = rst.getString(1);
              bar = rst.getInt(2);
            }
            conn.close();
          }
        }

你可能感兴趣的:(tomcat JNDI 配置)