cod*_*ith 5 java tomcat configuration-files
简化情况:
/a一个webapp /b.我想要的是每个webapp指向不同的数据库.因此,/a指向数据库A的webapp和/b指向数据库B的指向webapp .
你怎么解决这个问题?(没有分裂战争本身)
您可以通过Tomcat的context.xml配置来完成,而无需拆分代码.
您可以为示例/a和/b两个不同的全局数据源"sharedDataSourceA"和"sharedDataSourceB"定义两个上下文.您可以将不同的全局数据源绑定到具有相同名称的这些上下文,例如"appDataSource".
<GlobalNamingResources>
...
<Resource name="sharedDataSourceA"
global="sharedDataSourceA"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
alternateUsernameAllowed="true"
username="bar"
password="barpass"
...
<Resource name="sharedDataSourceB"
global="sharedDataSourceB"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
alternateUsernameAllowed="true"
username="bar"
password="barpass"
...
...
</GlobalNamingResources>
<Context path="/a"...>
...
<ResourceLink
name="appDataSource"
global="sharedDataSourceA"
type="javax.sql.DataSource"
factory="org.apache.naming.factory.DataSourceLinkFactory"
username="foo"
password="foopass"
...
</Context>
<Context path="/b"...>
...
<ResourceLink
name="appDataSource"
global="sharedDataSourceA"
type="javax.sql.DataSource"
...
</Context>
Run Code Online (Sandbox Code Playgroud)
然后在您的代码中,您可以通过jndi lookup 将数据源绑定到"appDataSource".将相同的战争部署到/a和/b.他们将在不同的数据库上工作.