簡體   English   中英

使用Apache Geronimo的jndi默認上下文中的java.lang.String - 如何?

[英]java.lang.String in jndi default context with Apache Geronimo - How?

在servlet中,我執行以下操作:

  Context context = new InitialContext();
  value = (String) context.lookup("java:comp/env/propertyName");

在Apache Geronimo實例(WAS CE 2.1)上,如何將值與鍵屬性關聯?

在Websphere AS 6中,我可以在管理控制台的“名稱空間綁定”頁面下為JNDI查找配置這些屬性,但在我的生活中,我無法在Web上的社區版本中執行此操作。

一種可能性是使用一個或多個<env-entry>標記將屬性添加到web.xml文件(在WEB-INF目錄中)。 例如,類似以下內容:

<env-entry>
   <description>My string property</descriptor>
   <env-entry-name>propertyName</env-entry-name>
   <env-entry-type>java.lang.String</env-entry-type>
   <env-entry-value>Your string goes here</env-entry-value>
</env-entry>

每個env-entry標記都聲明一個新的環境變量,然后您可以從java:comp/env上下文中訪問該變量。

添加必要的env-entry ,您可以使用與已發布的代碼類似的代碼來訪問這些值。 請注意,我沒有安裝Geronimo,因此我不知道是否需要進行任何其他配置才能使其工作。

可以將屬性放在文件中,並使文件的名稱和位置成為web.xml中URL類型的resource-ref。 資源的值在geronimo-web.xml中設置。

您的web.xml將具有以下條目:

<resource-ref>
    <res-ref-name>configFileName</res-ref-name>
    <res-type>java.net.URL</res-type>
</resource-ref>

在geronimo-web.xml中,您可以定義configFileName的值

<name:resource-ref>
    <name:ref-name>configFileName</name:ref-name>
    <name:url>file:///etc/myConfigFile</name:url>
</name:resource-ref>

在java中,您有以下代碼來查找值:

initialContext = new InitialContext();
URL url = (URL) initialContext.lookup("java:comp/env/configFileName");
String configFileName = url.getPath();

然后你必須打開文件並讀取那里的任何值。

所有這一切的結果是您在文件系統上的文件中具有屬性。 如果您重新部署應用程序,它將不會被覆蓋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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