2017-03-08 63 views
0

我不會經常弄亂WebSphere來知道這是否可行。我希望我的J2EE或普通的Java應用程序知道它正在運行的方塊,即PRODUCTION,DEVELOPMENT或TEST,並相應地使用PROD,DEVL或TEST資源。由於此信息對所有應用程序都很常見,因此我不想將其存儲在任何特定的應用程序中。是否可以在所有J2EE(Struts2)應用程序和普通Java應用程序都可以訪問的Linux機器上或WebSphere(所有應用程序之外)中存儲(environment?)變量?我很感謝在這方面的任何指示。謝謝。從J2EE和Java應用程序中讀取公共變量

回答

0

是的。我不是WebSphere用戶,但快速搜索提供了這個:Setting environment entries in WebSphere Application Server

的WebSphere Application Server 7.0,8.0,8.5和8.5.5

打開管理控制檯。

選擇服務器>(展開服務器類型)> WebSphere應用程序服務器> server_name>(展開Java™和進程管理)>進程定義>環境條目>新建。

將條目添加到名稱/值對中。

單擊確定。

保存對主配置的更改並重新啓動應用程序服務器。

WebSphere Application Server 6.1

打開管理控制檯。

選擇服務器>應用程序服務器> server_name>(展開Java™和進程管理)>進程定義>環境條目>新建。

將條目添加到名稱/值對中。

單擊確定。

保存對主配置的更改並重新啓動應用程序服務器。

我在JBoss/Wildfly中做了幾乎相同的事情。您只需設置一個條目JVM的環境。

編輯迴應1評論:

我認爲這是一個安全的猜測,你的Java應用程序並不在同一個JVM上的WebSphere的J2EE應用程序運行。單獨的JVM =單獨的環境。我們使用Java Web Start來分發和啓動來自不同環境的本地Java應用程序 - 每個服務器環境都會寫入一個包含適當應用程序設置的JNLP。如果您只需要在同一臺計算機上的應用程序知道它們的位置,那麼您可以設置一個shell variable,正如您所說的那樣,它可以被WebSphere和Java應用程序讀取。

編輯#2,有關的WebSphere - 在進一步調查後:

我也發現了這一點,這是這個問題的部分重複:Place for setting environment variables for WebSphere JVM process。那裏的答案指出,使用WebSphere GUI輸入env變量對於集羣也是可取的。

您可能想要將WebSphere特定方法與shell變量結合使用。

+0

謝謝。我嘗試了這個和http://stackoverflow.com/questions/6979958/read-a-environment-variable-in-java-with-websphere的建議,但是當我做一個System.getenv(「VAR」)時,它來自我的J2EE應用程序,但不是來自我的Java應用程序。 System.getProperty在任一應用程序中都不起作用 – user1005585

+0

@ user1005585請參閱編輯響應 –

+0

此外,System.getProperty在此不適用,因爲您沒有通過切換到java命令傳遞信息,例如 '#設置系統屬性。 -Dcom.ibm.example.system.property = ExampleValue' –