Доступ к параметрам среды в файле web.xml из приложения веб-службы - PullRequest
2 голосов
/ 16 декабря 2009

Мне нужно создать два приложения веб-службы для развертывания на разных серверах (WebSphere 6.1). Один из них «связан» с другим путем вызова своих служб, поэтому первое приложение веб-службы должно знать URL-адрес конечной точки второго.

Эти приложения работают в разных средах: Dev, Test и Production. Я решил сохранить этот 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)…

Пожалуйста, любая помощь будет очень признательна.

Спасибо.

1 Ответ

0 голосов
/ 20 января 2010

Я нашел причину своей проблемы, просто не успел ответить на свой вопрос. С моей стороны было глупо тестировать мой код из метода main () в одном из классов приложения. Определенно, вам следует развернуть и запустить свое веб-приложение (в моем случае приложение веб-службы), а затем попытаться получить переменные среды из контекста приложения. Все работает сейчас.

...