![](/img/trans.png)
[英]glassfish-4 + spring jndi name java:comp/env/jdbc/
[英]How to set a java:comp/env/foo JNDI variable in Glassfish 4.1?
我想使用一个 ServletFilter 从 java:comp/env/ JNDI 命名空间读取它的配置。 由于该值在开发服务器和生产服务器上会有所不同,因此不应通过 web.xml 对其进行硬编码,而应在应用程序服务器中进行配置。
我已经尝试过以下地方,但似乎没有一个是正确的:
如何在 Glassfish 4.1 中设置自定义 JNDI 变量?
我只安装了 Glassfish 4.1 网络版。 虽然它有 JNDI 支持,但 Web GUI 完全缺乏资源 -> JNDI 菜单来配置自己的变量!
在 Web Profile Glassfish 中,可以在 domain.xml 中编写自定义 JNDI 变量,它们似乎可以通过管理 GUI 进行其他更改:
<resources>
...
<custom-resource res-type="java.lang.String" jndi-name="cas/serverName" factory-class="org.glassfish.resources.custom.factory.PrimitivesAndStringFactory">
<property name="value" value="https://sso.example.com/"></property>
</custom-resource>
</resources>
...
<servers>
<server name="server" config-ref="server-config">
...
<resource-ref ref="cas/serverName"></resource-ref>
</server>
</servers>
在向 Glassfish 添加 JNDI 变量后,它只能在 InitialContext.doLookup("cas/serverName") 中使用,而不是在 java:comp/env 命名空间中。 为此,我必须将以下内容添加到我的 web.xml(它在 glassfish-web.xml 中不起作用!):
<resource-ref>
<res-ref-name>cas/serverName</res-ref-name>
<res-type>java.lang.String</res-type>
<lookup-name>cas/serverName</lookup-name>
</resource-ref>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.