技术开发 频道

JNDI 资源引用设置

【IT168技术文档】
  本文讲述DataSource,JNDI, 资源引用设置 等

1.server.xml中配置主机应用上下文
<Host>

<!--
<Context path="/petclinic" docBase="petclinic"
debug="5" reloadable="true" crossContext="true">
<Resource name="jdbc/petclinicMYSQL" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="pc" password="pc" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/petclinic?autoReconnect=true"/>

</Context>

-->

</Host>

2.$catalina_home/conf/ 【Catalina引擎】/【主机】/虚拟路径名.xml
<?xml version="1.0" encoding="UTF-8" ?>

<Context path="/petclinic" docBase="petclinic" debug="4" reloadable="true">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_petclinic_log." suffix=".txt" timestamp="true"/>
<Resource
name="jdbc/petclinicMYSQL"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
removeAbandoned="true"
logAbandoned="true"
removeAbandonedTimeout="60"
password="pc"
maxIdle="10"
maxWait="5000"
username="pc"
url="jdbc:mysql://localhost:3306/petclinic?autoReconnect=true"
maxActive="50"/>
</Context>

3. /META-INF/context.xml
<?xml version="1.0" encoding="UTF-8" ?>
<Context path="/petclinic" docBase="petclinic" debug="4" reloadable="true">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_petclinic_log." suffix=".txt" timestamp="true"/>
<Resource
name="jdbc/petclinicMYSQL"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
removeAbandoned="true"
logAbandoned="true"
removeAbandonedTimeout="60"
password="pc"
maxIdle="10"
maxWait="5000"
username="pc"
url="jdbc:mysql://localhost:3306/petclinic?autoReconnect=true"
maxActive="50"/>
</Context>

4.web.xml
<!--
- Reference to PetClinic database.
- Only needed if not using a local DataSource but a JNDI one instead.
-->
<!-- -->
设置资源引用,注意JNDI查找树,资源类型,认证方式等
<resource-ref>
<res-ref-name>jdbc/petclinicMYSQL</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

5.应用程序中使用JNDI进行DataSource查找

<!-- JNDI DataSource for J2EE environments -->
<!--
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/petclinicMYSQL</value>
</property>
</bean>
-->

Context ctx=new InitialContext();
Context envContext = (Context)ctx.lookup("java:/comp/env"); --先查找根树
DataSource ds = (DataSource)envContext.lookup("jdbc/mysqlDS");--查找节点
Connection conn = ds.getConnection(); --获取连接


0
相关文章