在项目的META-INF里面定义了数据源,如下
<Resource name="db" auth="Container"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
driverClass="com.mysql.jdbc.Driver"
jdbcUrl="jdbc:mysql://192.168.0.2/ipm"
user="ipm"
password="guet"
factory="org.apache.naming.factory.BeanFactory"
maxPoolSize="50"
minPoolSize="5"
initialPoolSize="5"
acquireIncrement="5"
idleConnectionTestPeriod="600"
maxIdleTime="600"
/> 在applicationContext的配置
<bean id="myDateSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/db" />
</bean> 一直都没问题。
在我将tomcat6/config/下的server.xml做了修改以后修改情况如下
由于原来的(默认设置) <Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
改为如下:
<Engine name="Catalina" defaultHost="www.ipm.com">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="www.ipm.com" appBase="/"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="D:\work\ipm\WebRoot" reloadable="true" crossContext="true">
</Context>
</Host>
</Engine>
修改后运行
提示 javax.naming.NameNotFoundException: Name db is not bound in this Context 也就是在spring 的applicationContext找不到数据源了
<Resource name="db" auth="Container"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
driverClass="com.mysql.jdbc.Driver"
jdbcUrl="jdbc:mysql://192.168.0.2/ipm"
user="ipm"
password="guet"
factory="org.apache.naming.factory.BeanFactory"
maxPoolSize="50"
minPoolSize="5"
initialPoolSize="5"
acquireIncrement="5"
idleConnectionTestPeriod="600"
maxIdleTime="600"
/> 在applicationContext的配置
<bean id="myDateSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/db" />
</bean> 一直都没问题。
在我将tomcat6/config/下的server.xml做了修改以后修改情况如下
由于原来的(默认设置) <Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
改为如下:
<Engine name="Catalina" defaultHost="www.ipm.com">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="www.ipm.com" appBase="/"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="D:\work\ipm\WebRoot" reloadable="true" crossContext="true">
</Context>
</Host>
</Engine>
修改后运行
提示 javax.naming.NameNotFoundException: Name db is not bound in this Context 也就是在spring 的applicationContext找不到数据源了
server.xml中把<Context path="" docBase="D:\work\ipm\WebRoot" reloadable="true" crossContext="true">
</Context> 移动到META-INF的context.xml中
<Context path="" docBase="D:\work\ipm\WebRoot" reloadable="true" crossContext="true">
<Resource ......
</Context>
回Landor2004,按你说的办连项目都不加载了。不知道是否还要在哪个地方做修改?
http://hi.baidu.com/landor2004/blog/item/17d528366cf288370a55a93b.html
先这么测试一下,然后再挂上域名