【发布时间】:2019-03-18 11:27:23
【问题描述】:
我在 tomcat 中部署应用程序(war 文件)时遇到问题。
应用程序在 web.xml 和 SpringDataJPAContext.xml 中定义了对 JNDI 数据源的引用(应用程序在 jboss 上运行正常)。就我而言,我在 tomcat、server.xml 和 conf/Catalina/localhost ([name-application].xml) 内的文件中定义数据源。
在我定义的应用程序中...
在 WEB-INF/web.xml 中:
<resource-ref>
<description>JDBC Data Source</description>
<res-ref-name>mydb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<mapped-name>java:mydb</mapped-name>
</resource-ref>
在WEB-INF/classes/SpringDataJPAContext.xml:
<beans: bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<beans: property name="jndiName" value="java:jdbc/mydb"/>
</beans:bean>
就我而言,我正在测试 tomcat ...
在 server.xml 中:
<GlobalNamingResources>
....
<Resource name="mydb" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="user" password="pass" driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://localhost:5432/mydb"/>
</GlobalNamingResources>
在 conf/Catalina/localhost/myapp.xml 中:
<Context>
<ResourceLink name="mydb" global="mydb" type="javax.sql.DataSource"/>
</Context>
但是,当我启动 tomcat 时,我得到一个找不到数据源名称的错误。我得到:
"javax.naming.NameNotFoundException: Name [jdbc/mydb] is not bound in this Context. Unable to find [jdbc]."
我尝试了不同的配置,但错误不断出现。
【问题讨论】:
标签: java xml database tomcat datasource