2010-01-11 37 views

回答

5

我不這麼認爲。引用Load objects in the JNDI tree

使用管理控制檯,您可以加載WebLogic Server的J2EE服務和組件,如RMI,JMS,EJB和JDBC數據源,JNDI樹。

事實上,我找不到使用控制檯添加StringURL的方法。

AFAIK,標準的方法是把一個env-entry在部署描述符(web.xml,ejb-jar.xml中):

<env-entry> 
    <env-entry-name>string/foo</env-entry-name> 
    <env-entry-type>java.lang.String</env-entry-type> 
    <env-entry-value>foobar</env-entry-value> 
</env-entry> 

<env-entry> 
    <env-entry-name>url/bar</env-entry-name> 
    <env-entry-type>java.net.URL</env-entry-type> 
    <env-entry-value>http://foobar/</env-entry-value> 
</env-entry> 
+2

但如果我把它放在web.xml中的任何改變都需要重建和重新部署。奇怪的是,我可以在服務器上放置JDBC配置,以便更改不需要重建,但是我不能將我的自定義變量(例如郵件帳戶的密碼,無法在郵件會話中配置)和需要將它們保存在我的應用程序中。 – 2010-01-12 07:40:38

+0

需要做同樣的事情哇,那太臭了。 – MeBigFatGuy 2012-04-06 19:02:44

+1

您應該使用plan.xml來更新/覆蓋web.xml中的默認值 – 2013-04-16 16:25:50

1

我有完全相同的問題達成這一點。例如,在Websphere中,我可以將任意參數(如臨時目錄,密碼和其他信息)添加到JNDI,而無需重新編譯/重建EAR。

我搜索了一會兒,似乎缺乏Weblogic的這一功能。我所做的就是編寫一個幫助類,它首先搜索給定配置鍵的JNDI,如果找不到,則返回搜索環境或系統變量。

也許這可以增強還搜索應用程序的名稱或上下文根前綴的那些屬性,在運行時發現,爲了避免名稱衝突時相同的EAR的多個實例部署。

相關問題