Java Linux上带有WAR文件的Tomcat 6的JNDI资源问题
我对Tomcat和Java web开发还比较陌生,我遇到了一个问题,我的头撞到了墙上 我有一个在我的本地机器(windows xp)上运行良好的web应用程序,我安装了Tomcat 6,WAR文件部署在webapps文件夹中,在c:/apache-Tomcat-6.0.18/conf/Catalina/localhost/目录中,我有“myApp.xml” myApp.xml包含以下内容:Java Linux上带有WAR文件的Tomcat 6的JNDI资源问题,java,spring,tomcat,jndi,Java,Spring,Tomcat,Jndi,我对Tomcat和Java web开发还比较陌生,我遇到了一个问题,我的头撞到了墙上 我有一个在我的本地机器(windows xp)上运行良好的web应用程序,我安装了Tomcat 6,WAR文件部署在webapps文件夹中,在c:/apache-Tomcat-6.0.18/conf/Catalina/localhost/目录中,我有“myApp.xml” myApp.xml包含以下内容: <Context path="/myApp" docBase="/myApp.war" debug=
<Context path="/myApp" docBase="/myApp.war" debug="1" reloadable="true" cookies="true">
<Resource name="jdbc/sql-connection" scope="Shareable" type="javax.sql.DataSource" auth="Container" username="test" password="test" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" driverClassName="net.sourceforge.jtds.jdbc.Driver" url="jdbc:jtds:sqlserver://xxxx:xxxx;appName=myApp" removeAbandoned="true" logAbandoned="true" />
</Context>
我试着在互联网上寻找答案,但似乎没有一个答案是完全相同的,而且tomcat配置文件和web应用程序之间的名称似乎匹配。首先,tomcat不理解
myApp.xml
(除非你明确指出它,我不知道如何)。Tomcat基于上下文运行,可以为web应用程序配置上下文。Tomcat只允许部署Web应用程序归档(WAR)文件
要为应用程序创建上下文,请在Web应用程序的META-INF文件夹中创建一个context.xml
(所有大小写,区分大小写)文件
有关配置上下文的参考指南,请参见。您将看到属性debug
已弃用
Tomcat6的JNDI参考资料操作指南也提供了
在META-INF文件夹中创建context.xml
后,将以下代码(取自示例)粘贴到下面:
(默认情况下,Tomcat使用PoolableDataSource进行连接池)
完成后,在WEB-INF/WEB.xml
中配置
。这将允许您创建可共享的作用域。请参阅上提供的
我希望这对你有帮助
<bean id="myDatasource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/sql-connection</value>
</property>
</bean>
Error creating bean with name 'myDatasource' defined in file [/opt/apache-tomcat-6.0.18/webapps/myApp/WEB-INF/classes/applicationContext.xml]: Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
<Context path="/myApp" docBase="/myApp.war" reloadable="true" cookies="true">
<Resource name="jdbc/sql-connection" type="javax.sql.DataSource" auth="Container" username="test" password="test" driverClassName="net.sourceforge.jtds.jdbc.Driver" url="jdbc:jtds:sqlserver://xxxx:xxxx;appName=myApp" removeAbandoned="true" logAbandoned="true" />
</Context>