gpt4 book ai didi

java - 为什么这有效? JNDI、Tomcat6

转载 作者:行者123 更新时间:2023-12-02 00:26:48 24 4
gpt4 key购买 nike

我正在尝试将所有数据库信息移出项目,以便 SA 可以设置服务器并从 DEV->QA->PROD 移动相同的 WAR,而无需更改 WAR 文件中的任何内容。我们将 JNDI 设置为 tomcat6 上的 MySQL 数据库。

将以下内容添加到 server.xml

<Resource name="jdbc/mi" auth="Container" type="javax.sql.DataSource"
username="xxx" password="xxx"
url="jdbc:mysql://xx"
driverClassName="com.mysql.jdbc.Driver"
initialSize="5" maxWait="5000"
maxActive="120" maxIdle="5"
validationQuery="select 1"
poolPreparedStatements="true"/>

但是该项目无法正常运行。我收到以下错误:

Caused by: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'

如果我在我的项目中设置了一个具有相同信息的/META-INF/context.xml,一切都会运行良好,但 SA 不希望在我的 war 中使用服务器信息。会是什么?有人可以帮我解决这个问题吗?我在互联网上搜索并尝试了所有方法,但没有任何效果。请帮助程序员!

最佳答案

您是否在项目中设置了WEB-INF/web.xml?它应该包含这样的内容

<resource-env-ref>
<resource-env-ref-name>jdbc/mi</resource-env-ref-name>
<resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>
</resource-env-ref>

您在问题中没有提及它,因此它可能丢失了。看这个Java documentationthe Tomcat6' one

关于java - 为什么这有效? JNDI、Tomcat6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9844909/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com