2009-12-16 4 views
2

두 개의 웹 서비스 응용 프로그램을 다른 서버 (WebSphere 6.1)에 배포해야합니다. 그 중 하나는 서비스를 호출하여 다른 웹 서비스에 "링크"되므로 첫 번째 웹 서비스 응용 프로그램은 두 번째 웹 서비스의 끝점 URL을 인식해야합니다.웹 서비스 응용 프로그램에서 web.xml의 환경 매개 변수에 액세스

이러한 응용 프로그램은 Dev, Test 및 Production과 같이 다양한 환경에서 작동합니다. 첫 번째 애플리케이션의 web.xml 파일에 환경 매개 변수로 해당 URL을 저장하여 한 개발 단계에서 다른 개발 단계로 이동하는 데 유연성을 갖기 때문에 엔드 포인트 URL을 배치 중에 설정할 수 있습니다. 자바 코드에서


<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> 

내가 가진 :

내 첫 번째 응용 프로그램의 web.xml에

I는 다음과 같이 환경 매개 변수를 설명


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() 메서드에서 내 코드를 테스트했다. 확실히, 웹 애플리케이션 (내 웹 서비스 애플리케이션)을 먼저 배치하고 시작한 다음 애플리케이션 컨텍스트에서 환경 변수를 가져와야한다. 모든 것이 지금 작동 중입니다.