gpt4 book ai didi

java - 将 Resource 标记放在 conf/context.xml 中会出现异常,但是当我将其放在 META-INF/context.xml 中时没问题 : Why is that?

转载 作者:行者123 更新时间:2023-11-28 23:48:13 25 4
gpt4 key购买 nike

为了最初使用 tomcat 作为服务器连接到 derby 数据库,我将以下内容添加到 Tomcat 的 conf/context.xml 中:

<Resource name="jdbc/PollDatasource" auth="Container" type="javax.sql.DataSource"
driverClassName="org.apache.derby.jdbc.ClientDriver"
url="jdbc:derby://localhost:1527/poll database;create=true"
username="suhail" password="suhail"
maxActive="20" maxIdle="10" maxWait="-1" />

和项目的WEB-INF/web.xml的web.xml中的Resource-ref标签。

<resource-ref>
<description>my connection</description>
<res-ref-name>jdbc/PollDatasource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

但是当我运行一个必须连接到数据库的 servlet 时,声明:

connection = dataSource.getConnection();

引发异常:

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

不明白这个异常的原因。

发生异常后,我从 Tomcat 的 conf/context.xml 中删除了 Resource 标记,并将其放在 META-INF/context.xml 中 我的项目。

当我再次尝试 servlet 时,它毫无异常(exception)地工作了!

当我将 Resource 标记放在全局 context.xml 文件中时出现异常的原因可能是什么 (即在 conf/context.xml 中) 但是当我将它放在特定于我的应用程序的 context.xml 中时,没有得到异常吗?。 (即在 META-INF/context.xml 中)

最佳答案

添加<Resource>conf/context.xml将为您在服务器上部署的每个 webapp 提供该资源的副本——可能不是您想要做的。如果你想要 <Resource>为了全局可用,放入conf/server.xml比较合适在 <GlobalNamiongResources> 下.

我认为您遇到的错误是因为您没有将 JDBC 驱动程序放在正确的位置。定义 <Resource>conf/context.xml可能会导致使用不同的 ClassLoader 加载您的 <Resource> .

关于java - 将 Resource 标记放在 conf/context.xml 中会出现异常,但是当我将其放在 META-INF/context.xml 中时没问题 : Why is that?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11589834/

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