gpt4 book ai didi

mysql - Glassfish MySQL JNDI 查找失败

转载 作者:行者123 更新时间:2023-11-29 21:39:53 24 4
gpt4 key购买 nike

在 Glassfish 4.1.1 管理界面上,我设置了一个名为 jdbc/MySQL 的 JDBC 资源,链接到名为 MySQL 的 JDBC 连接池(首先手动修改了 domain.xml)。连接池 ping 成功。到目前为止一切顺利。

我修改了 web.xml 并添加了:

<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/MySQL</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>

还有 glassfish-web.xml:

<resource-ref>
<res-ref-name>jdbc/MySQL</res-ref-name>
<jndi-name>jdbc/MySQL</jndi-name>
</resource-ref>

但是在我的 J2EE WAR 中,当我这样做时:

InitialContext ctx;
DataSource ds;

ctx = new InitialContext();
ds = (DataSource) ctx.lookup("java:comp/env/jdbc/MySQL");

结果总是查找失败。

删除 java:comp/env/没有帮助。

任何提示表示赞赏!谢谢。

问候约翰

最佳答案

好的,我已经开始工作了。资源已启用,并且实际上不需要修改 web.xml 和 glassfish-web.xml,我只是在多次尝试修复它时这样做了。

但是你知道原因是什么吗? JNDI 名称中的斜杠。我今天发现,当我按下资源管理面板中的保存按钮时,出现错误“资源 jndi%2FMySQL 不存在”。我将此作为提示,并将资源命名为“mysql”。这解决了这个问题:)有人可以在 glassfish 4.1.1 上确认这一点吗?

由于管理面板中添加新资源时出现错误,我必须在一开始将其手动插入到domain.xml中。也许这就是原因?但默认的资源也是用斜杠保存的...

顺便说一句。现在的查找是:

ctx.lookup("mysql");

关于mysql - Glassfish MySQL JNDI 查找失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34621901/

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