配置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();
}
}