1. 程式人生 > >tomcat下oracle多資料來源多專案配置(親測可行)

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>

<context-param>
        <param-name>webAppRootKey</param-name>
        <param-value>cfc
.root
</param-value>
 </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>