定制资源等效于JNDI资源



我有一个Web应用程序,该应用程序直到现在已部署到Jetty服务器,但现在为了使用我要转移到Payara(Glassfish)容器的其他Javaee服务。但是,我找不到如何提供其他JNDI资源作为Paraya的配置。目前,我在码头的context.xml文件中定义了一些类似的资源:

<New id="some_resource" class="org.eclipse.jetty.plus.jndi.Resource">
    <Arg>
        <Ref refid='wac'/>
    </Arg>
    <Arg>resource/path</Arg>
    <Arg>
        <New class="com.example.some.Class">
            <!-- constructor parameters -->
            <Arg type="java.lang.String">some string</Arg>
            <Arg type="java.lang.Integer">0</Arg>
        </New>
    </Arg>
</New>

这只是调用带有给定参数的自定义类构造函数,然后将结果放入给定的resource/path地址。

这可以在Payara Micro?

中完成

可以创建通过JNDI暴露的自定义资源,尽管默认情况下仅glassfish/payara支持原始类型。对于其他类型,您需要在服务器类路径中添加自定义工厂。

Payara/Glassfish中的自定义资源在domain.xml中定义在元素custom-resource中。定义自定义资源的最佳方法是使用admin Console(资源 -> jndi->自定义资源)或asadmin命令。

对于jndi resource/path下的字符串值"一些字符串",asadmin看起来像这样:

asadmin> create-custom-resource --restype java.lang.String --factoryclass org.glassfish.resources.custom.factory.PrimitivesAndStringFactory --property value="some string" "resource/path"

在Payara Micro中,您可以使用--domainConfig参数通过domain.xml,也可以使用PayaramicRoruntime.run()(在此处记录)

,可以从应用程序内执行相同的asadmin命令。

最新更新