在Glassfish 4.1.1定制资源上进行JNDI查找

时间:2018-06-26 08:30:11

标签: java-ee glassfish jndi

我正在尝试使用JNDI自定义资源将数据直接存储在服务器(Glassfish)中,但是显然无法正常工作。

我在下图中定义了我的JNDI

enter image description here

对应于我的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'是我唯一的收获。

如果有人对我有一个主意,我将很感激!

2 个答案:

答案 0 :(得分:0)

解决了!

我正在手动编辑domain.xml以添加我的JNDI自定义资源,因为当单击“ JNDI自定义资源”部分的 New ... 时,Glassfish 4.1.1管理界面会给出运行时错误。< / p>

cancel文件经过编辑后,在管理面板中显示得很好,但是显然不能正常工作。

我已经使用asadmin控制台的domain.xml命令解释了here创建了自定义资源。

create-custom-resource

然后看起来它已正确添加到系统中。 (看起来它不仅存储在create-custom-resource --restype java.lang.String --factoryclass org.glassfish.resources.custom.factory.PrimitivesAndStringFactory --property "value=UnitTest" projectStage 文件中)

答案 1 :(得分:0)

在较旧的glassfish版本和Glassfish 4.1之间手动传输配置时,我遇到了类似的问题。

您建议的解决方案确实可以工作,但是如果您有很多属性,则需要大量工作。但是通过 asadmin 添加它并比较 domain.xml 时,我发现了失败的原因。

如果仅添加自定义资源 glassfish将无法找到它。它还需要参考该资源。 以我为例,它在 部分,需要

相关问题