Glassfish MySQL JNDI Lookup失败

时间:2016-01-05 21:53:56

标签: mysql glassfish jndi lookup

Glassfish上的

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

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

@if ( ! Route::is('global-search'))

    @include('search.form')

@endif

和glassfish-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>

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

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

结果总是Lookup失败。

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

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

此致 约翰

1 个答案:

答案 0 :(得分:0)

好的,我得到了它的工作。资源已启用,并且不需要在web.xml和glassfish-web.xml中进行修改,我只是在尝试修复它时尝试了这一点。

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

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

顺便说一下。现在查找:

ctx.lookup("mysql");