簡體   English   中英

如何在 Glassfish 4.1 中設置 java:comp/env/foo JNDI 變量?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM