Настройка ресурса JNDI, который не является источником данных в Liberty Profile

Я пытаюсь запустить существующее приложение WebSphere в Liberty Profile, но столкнулся с проблемой. Приложение имеет запись среды ресурсов, настроенную на сервере, которую мне нужно преобразовать в ресурс профиля Liberty. Как настроить ресурс JNDI в server.xml, который не является источником данных (dataSource) или константой (jndiEntry)?

Большое спасибо


person user838568    schedule 06.08.2013    source источник


Ответы (3)


Вы можете настроить это с помощью элемента в файле server.xml. Это задокументировано в информационном центре. По сути, вы включаете функцию jndi в server.xml, используя это:

<featureManager>
   <feature>jndi-1.0</feature>
</featureManager>

Затем вы можете настроить записи JNDI. Вы можете делать только простые типы, используя это, поэтому никаких сложных объектов. Чтобы настроить запись, сделайте следующее:

<jndiEntry jndiName="myProp/philosopher" value="plato" />

Профиль Liberty действительно выводит тип, поэтому, если вы выразили это:

<jndiEntry jndiName="myProp/philosopher" value="1234" />

вы получаете номер от JNDI. Если вы выражаете это:

<jndiEntry jndiName="myProp/philosopher" value="1234.3D" />

Вы получаете Двойник.

Если вам нужно число как строковый литерал, вы должны выразить его с помощью кавычек:

<jndiEntry jndiName="myProp/philosopher" value='"1234.3D"' />

Чтобы получить это из своего приложения, вы можете выполнить глобальный поиск, например:

Context ctx = new InitialContext();
Object jndiConstant = ctx.lookup("myProp/philosopher");
String philosopher = (String) jndiConstant;

Вы также можете сопоставить это с записью среды ресурсов в файле ibm-web-bnd.xml:

<env-entry name="philosopher" binding-name="myProp/philosopher" />

а затем используйте этот код, чтобы найти его:

Context ctx = new InitialContext();
Object jndiConstant = ctx.lookup("java:comp/env/philosopher");
String philosopher = (String) jndiConstant;
person Alasdair    schedule 07.08.2013
comment
Это хорошая информация, но OP сказал [не] источник данных (dataSource) или константу (jndiEntry). - person Brett Kail; 15.08.2013

В настоящее время это невозможно с Liberty Profile. Ответ на этот вопрос был дан на форуме IBM WasDev здесь https://developer.ibm.com/answers/questions/6221/resource-environment-entries-in-liberty-profile/?community=wasdev Процесс RFE (31525) создан для это для поддержки в будущем выпуске.

person Luc De pauw    schedule 11.08.2014

В 8.5.5.x есть несколько новых записи:

Например: Чтобы настроить URL-адрес, вы можете использовать jndiURLEntry

person bish    schedule 20.06.2017