我有一个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
命令。