【问题标题】:JNDI lookup on Glassfish 4.1.1 custom resourcesGlassfish 4.1.1 自定义资源上的 JNDI 查找
【发布时间】:2018-06-26 08:30:11
【问题描述】:

我正在尝试使用 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' 是我从中得到的唯一东西。

如果有人对我有想法,我将不胜感激!

【问题讨论】:

    标签: jakarta-ee glassfish jndi


    【解决方案1】:

    解决了!

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

    编辑 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文件中)

    【讨论】:

      【解决方案2】:

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

      您建议的解决方案确实有效,但如果您有很多属性,则工作量很大。但是通过asadmin添加并比较domain.xml我找到了失败的原因。

      如果你只是添加 custom-resource glassfish 将无法找到它。它还需要引用资源。 在我的情况下,它在 部分,需要一个

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-23
        • 1970-01-01
        • 2011-08-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多