2009-12-16 65 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服务应用程序)先部署并启动,然后尝试从应用程序上下文中获取环境变量。一切都在工作。

相关问题