2013-08-08 3 views
1

У меня есть приложение EAR в ячейке с двумя веб-модулями, каждый веб-модуль имеет сервлет.Приложение и имя модуля, хотя JNDI в WebSphere 7

Я хочу получить JNDI имя приложения и модуля, когда я запрашиваю каждый сервлет.

Я попытался с:

String applicationName = (String) new InitialContext() 
    .lookup("java:app/AppName"); 

String moduleName = (String) new InitialContext() 
    .lookup("java:module/ModuleName"); 

did't работы. приложение и модуль не найдено в java:.

Я нашел этот пример на веб-странице, может быть, это работает для WebSphere 8, но не для 7.

Я попытался основать запись с приложением или модуля имени в Java: комп/ENV но Бесполезный Не нашел.

  • Как я могу получить имя приложения с сервера приложений?
  • И имя модуля?
  • Есть лучший способ, чем JNDI?

Заранее спасибо.

ответ

2

Один из способов, которым я могу придумать для уровня приложения, - указать <env-entry> в web.xml вашего приложения. Websphere попросит вас указать значение для развертывания, но он будет использовать все, что вы поместите в web.xml по умолчанию.

Например:

<env-entry> 
    <env-entry-name>AppName</env-entry-name> 
    <env-entry-type>java.lang.String</env-entry-type> 
    <env-entry-value>MyApp</env-entry-value> 
</env-entry> 

Тогда вы можете посмотреть это значение через JNDI с помощью java:comp/env/AppName.

+0

Я не могу думать о модульном способе делать это в данный момент. – FGreg

+0

Это может быть поворот. Но если два экземпляра одного и того же приложения будут развернуты на одном сервере с одинаковым значением, у меня будет конфликт для моего варианта использования. Но если я могу получить имя приложения из WebSphere, конфликта не будет. –

+0

Правильно, с помощью этого метода вам нужно будет указать уникальное имя для приложения. WebSphere попросит вас предоставить это значение во время развертывания, но он будет использовать то, что находится в web.xml по умолчанию. Я не знаю, будет ли WS автоматически регистрировать любые имена в локальном и/или java-контексте. – FGreg

Смежные вопросы