Мне нужно создать два приложения веб-службы для развертывания на разных серверах (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)…
Пожалуйста, любая помощь будет очень признательна.
Спасибо.