Glassfish 4.1.1 自定义资源上的 JNDI 查找
JNDI lookup on Glassfish 4.1.1 custom resources
我正在尝试使用 JNDI 自定义资源将数据直接存储在我的服务器 (Glassfish) 中,但它显然不起作用。
我将我的 JNDI 定义为下图
对应我的domain.xml.
中的如下描述
<custom-resource factory-class="org.glassfish.resources.custom.factory.PrimitivesAndStringFactory" res-type="java.lang.String" jndi-name="projectStage">
<property name="value" value="UnitTest"></property>
</custom-resource>
然后,我试图在我的一个托管 bean 中获取这个值。
Context c = new InitialContext();
c.lookup("projectStage");
但是...javax.naming.NamingException: Lookup failed for 'projectStage'
是我从中得到的唯一东西。
如果有人对我有想法,我将不胜感激!
已解决!
我正在手动编辑我的 domain.xml 以添加我的 JNDI 自定义资源,因为 Glassfish 4.1.1 管理界面在单击 New... 时出现运行时错误JNDI 自定义资源部分。
编辑 domain.xml
文件后,它在管理面板中显示良好,但显然无法正常工作。
我已经使用 asadmin 控制台的 create-custom-resource
命令创建了自定义资源解释 here。
create-custom-resource --restype java.lang.String --factoryclass org.glassfish.resources.custom.factory.PrimitivesAndStringFactory --property "value=UnitTest" projectStage
然后就可以正常添加到系统中了。 (看起来它不仅存储在 domain.xml
文件中)
我在较旧的 glassfish 版本和 Glassfish 4.1 之间手动传输配置时遇到了类似的问题。
您建议的解决方案确实有效,但如果您有很多属性,则工作量很大。但是通过 asadmin 添加它并比较 domain.xml 我找到了失败的原因。
如果您只是添加 自定义资源 glassfish 将无法找到它。它还需要引用资源。
在我的例子中,它在 部分,需要
<resource-ref ref="projectStage"></resourceRef>
我正在尝试使用 JNDI 自定义资源将数据直接存储在我的服务器 (Glassfish) 中,但它显然不起作用。
我将我的 JNDI 定义为下图
对应我的domain.xml.
中的如下描述<custom-resource factory-class="org.glassfish.resources.custom.factory.PrimitivesAndStringFactory" res-type="java.lang.String" jndi-name="projectStage">
<property name="value" value="UnitTest"></property>
</custom-resource>
然后,我试图在我的一个托管 bean 中获取这个值。
Context c = new InitialContext();
c.lookup("projectStage");
但是...javax.naming.NamingException: Lookup failed for 'projectStage'
是我从中得到的唯一东西。
如果有人对我有想法,我将不胜感激!
已解决!
我正在手动编辑我的 domain.xml 以添加我的 JNDI 自定义资源,因为 Glassfish 4.1.1 管理界面在单击 New... 时出现运行时错误JNDI 自定义资源部分。
编辑 domain.xml
文件后,它在管理面板中显示良好,但显然无法正常工作。
我已经使用 asadmin 控制台的 create-custom-resource
命令创建了自定义资源解释 here。
create-custom-resource --restype java.lang.String --factoryclass org.glassfish.resources.custom.factory.PrimitivesAndStringFactory --property "value=UnitTest" projectStage
然后就可以正常添加到系统中了。 (看起来它不仅存储在 domain.xml
文件中)
我在较旧的 glassfish 版本和 Glassfish 4.1 之间手动传输配置时遇到了类似的问题。
您建议的解决方案确实有效,但如果您有很多属性,则工作量很大。但是通过 asadmin 添加它并比较 domain.xml 我找到了失败的原因。
如果您只是添加 自定义资源 glassfish 将无法找到它。它还需要引用资源。
在我的例子中,它在
<resource-ref ref="projectStage"></resourceRef>