2009-12-16 32 views
2

我必須構建兩個Web服務應用程序以部署到不同的服務器(WebSphere 6.1)。其中一個通過調用其服務與另一個「鏈接」,因此第一個Web服務應用程序應該知道第二個Web服務應用程序的端點URL。從Web Service應用程序訪問web.xml中的環境參數

這些應用程序在不同的環境下工作:開發,測試和生產。 我決定將該URL作爲環境參數存儲在第一個應用程序的web.xml文件中,以便在將它們從一個開發階段移動到另一個開發階段時具有一定的靈活性,因此可以在部署期間設置端點URL。

在我的第一個應用程序的web.xml中我描述的環境參數爲:


<env-entry> 
<description>Second WS</description> 
<env-entry-name>SECOND_SVC_URL</env-entry-name> 
<env-entry-type>java.lang.String</env-entry-type> 
<env-entry-value>http//domain/url</env-entry-value> 
</env-entry> 

在Java代碼中,我有:


Context initialContext = new InitialContext(); 
Context context = (Context)initialContext.lookup("java:comp/env"); 
Object o = context.lookup(「SECOND_SVC_URL」); 
… 

我有在第二行異常該代碼:


javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial 
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:653) 
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:257) 
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:294) 
at javax.naming.InitialContext.lookup(InitialContext.java:361)… 

請任何幫助將非常感激。

謝謝。

回答

0

我發現我的問題的原因,只是沒有時間回答我自己的問題。我很愚蠢地在其中一個應用程序類中的main()方法中測試我的代碼。當然,你應該有你的Web應用程序(在我的情況下是Web服務應用程序)先部署並啓動,然後嘗試從應用程序上下文中獲取環境變量。一切都在工作。

相關問題