Java 创建自定义JNDI资源
我想通过context/JNDI为我正在开发的web应用程序提供配置。我目前正在使用捆绑的Glassfish服务器开发Netbeans 8.1,尽管我的解决方案应该是容器无关的 我有用于获取数据库连接的工作设置,但却被自定义资源类型难住了 在web.xml中:Java 创建自定义JNDI资源,java,netbeans,glassfish,jndi,netbeans-8,Java,Netbeans,Glassfish,Jndi,Netbeans 8,我想通过context/JNDI为我正在开发的web应用程序提供配置。我目前正在使用捆绑的Glassfish服务器开发Netbeans 8.1,尽管我的解决方案应该是容器无关的 我有用于获取数据库连接的工作设置,但却被自定义资源类型难住了 在web.xml中: <resource-ref> <res-ref-name>SHOWmail/search</res-ref-name> <res-type>com.example.Searc
<resource-ref>
<res-ref-name>SHOWmail/search</res-ref-name>
<res-type>com.example.SearchProvider</res-type>
<res-auth>Container</res-auth>
</resource-ref>
我得到了javax.naming.NameNotFoundException:没有对象绑定到名称java:SHOWmail/search
。我的工厂和类不受影响(如果需要,将添加)
非常感谢关于我哪里出错的指针。似乎我误解了netbeans/glassfish组合中不同的JNDI名称空间 解决方案是查看
java:app
而不是java:comp/env
;这将搜索WEB-INF/glassfish-resources.xml
web.xml
<resource-env-ref>
<resource-env-ref-name>SHOWmail/search</resource-env-ref-name>
<resource-env-ref-type>com.example.SearchProviderFactory</resource-env-ref-type>
</resource-env-ref>
显示邮件/搜索
com.example.SearchProviderFactory
glassfish-resources.xml
<custom-resource jndi-name="java:app/SHOWmail/search" res-type="com.example.ElasticSearchProvider" factory-class="com.example.SearchProviderFactory">
</custom-resource>
我也尝试了
而不是
,结果相同。
<resource-env-ref>
<resource-env-ref-name>SHOWmail/search</resource-env-ref-name>
<resource-env-ref-type>com.example.SearchProviderFactory</resource-env-ref-type>
</resource-env-ref>
<custom-resource jndi-name="java:app/SHOWmail/search" res-type="com.example.ElasticSearchProvider" factory-class="com.example.SearchProviderFactory">
</custom-resource>