tomcat下oracle多資料來源多專案配置(親測可行)
一. 專案配置修改:
1. 檔案位置:專案名/webapp/WEB-INF/application-context.xml,修改資料來源名稱
專案A:
<!-- 資料訪問,使用jdbc/topcdb做為資料來源 -->
<jee:jndi-lookup id="datasource" jndi-name="jdbc/topcdb"/>
專案B:
<!-- 資料訪問,使用jdbc/fangyundb做為資料來源 -->
<jee:jndi-lookup id="datasource" jndi-name="jdbc/fangyundb"/>
2. 檔案位置:專案名/webapp/WEB-INF/ web.xml,作如下修改
專案A:
<resource-ref>
<description>資料庫連線,需要在伺服器中配置</description>
<res-ref-name>jdbc/topcdb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<param-name>webAppRootKey</param-name>
<param-value>cfc
</context-param>
專案B:
<resource-ref>
<description>資料庫連線,需要在伺服器中配置</description>
<res-ref-name>jdbc/fangyundb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>house.root</param-value>
</context-param>
二. tomcat配置修改
1. conf/context.xml新增資料來源:
<Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver"
maxActive="100" maxIdle="30" maxWait="10000"
name="jdbc/topcdb" password="passwd1"
type="javax.sql.DataSource"
url="jdbc:oracle:thin:@127.0.0.1:1521:orcl" username="username1"/>
<Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver"
maxActive="100" maxIdle="30" maxWait="10000"
name="jdbc/fangyundb" password="passwd"
type="javax.sql.DataSource"
url="jdbc:oracle:thin:@127.0.0.1:1521:orcl" username="username"/>
</Context>
2. conf/server.xml作如下修改(也可不改,主要是為了不同專案通過不同域名訪問):
<Host name="localhost" appBase="webcfc"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="../webapps/cfc" reloadable="true" />
</Host>
<Host name="www.house.cn" appBase="webfangyun"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="../webapps/fangyun" reloadable="true" />
</Host>
注:war包一律放在webapps下面
三. eclipse可以對不同專案輸出的包名進行修改,(本人認為若用eclipse啟動單資料來源單專案可以不配置此項,打包到tomcat上部署亦可以不修改此項)
專案B:
1. .project檔案
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>cfc_house</name>
<comment></comment>
2. .settings/org.eclipse.wst.common.component檔案
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="cfc_house">
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
<wb-resource deploy-path="/" source-path="/webapp"/>
<property name="java-output-path" value="/cfc_house/build/classes"/>
<property name="context-root" value="house"/>
</wb-module>
</project-modules>