1. 在 META-INF 下建立文件: context.xml
<?xml version="1.0" encoding="UTF-8"?> <Context> <Resource auth="Container" delegateProperties="foo=bar" factory="org.logicalcobwebs.proxool.ProxoolDataSource" name="jdbc/xxxDB" password="xxxx" proxool.alias="proxool_juncsoftDB" proxool.driver-class="com.microsoft.sqlserver.jdbc.SQLServerDriver" proxool.driver-url="jdbc:sqlserver://localhost;integratedSecurity=true;DatabaseName=Kxxxjuxxxcsoft" proxool.house-keeping-sleep-time="600000" proxool.maximum-connection-count="30" proxool.minimun-connection-count="8" proxool.prototype-count="5" type="javax.sql.DataSource" user="BRAMFCQF3Q9OQ5H\Administrator"/> </Context>
然后 在 hibernate就可以引用:
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="connection.datasource">java:comp/env/jdbc/juncsoftDB</property> <property name="dialect"> org.hibernate.dialect.SQLServerDialect </property>
<property name="connection.datasource">java:comp/env/jdbc/xxxDB</property>
这样就可以 根据 jndi 找到 context.xml 中配置的 数据库连接信息。其实起到了一个 间接 的 隔离 的效果。
2. 在Tomcat的server.xml 文件中 <Host> 元素下 加入:
<Context antiJARLocking="false" antiResourceLocking="false" cookies="true" crossContext="true" docBase="xxxx" path="/xxxx" privileged="true" reloadable="true" source="org.eclipse.jst.j2ee.server:xxxx"> <Resource auth="Container" delegateProperties="foo=bar" factory="org.logicalcobwebs.proxool.ProxoolDataSource" name="jdbc/xxxDB" password="digdeep" proxool.alias="proxool_xxxxDB" proxool.driver-class="com.microsoft.sqlserver.jdbc.SQLServerDriver" proxool.driver-url="jdbc:sqlserver://localhost;integratedSecurity=true;DatabaseName=xxxxsoft" proxool.house-keeping-sleep-time="600000" proxool.maximum-connection-count="10" proxool.minimun-connection-count="8" proxool.prototype-count="5" type="javax.sql.DataSource" user="xxx\Administrator"/> </Context>
这里采用了 windows 认证的登录sql server的方式。
但是直接修改 tomcat 中的 server.xml 会被 eclipse 在发布时,所覆盖。所以我们应该修改 eclipse 中的 Server 中 server.xml 。发布时,eclipse 会使用自己的 Server 中的 server.xml 覆盖tomcat中的server.xml文件。
个人推荐在开发时推荐第一种方式,因为不会影响eclipse中的其他的项目。