Поиск JNDI на пользовательских ресурсах Glassfish 4.1.1 - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь использовать пользовательские ресурсы JNDI для хранения данных непосредственно на моем сервере (Glassfish), но он, очевидно, не работает.

Я определяю свой JNDI, как показано на рисунке ниже

enter image description here

, что соответствует следующему описанию в моем domain.xml.

<custom-resource factory-class="org.glassfish.resources.custom.factory.PrimitivesAndStringFactory" res-type="java.lang.String" jndi-name="projectStage">
      <property name="value" value="UnitTest"></property>
</custom-resource>

И затем я пытаюсь получить это значение в одном из моих управляемыхбоб.

Context c = new InitialContext();
c.lookup("projectStage");

Но ... javax.naming.NamingException: Lookup failed for 'projectStage' - единственное, что я от него получаю.

Если у кого-то есть идея для меня, я буду благодарен!

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

У меня возникла похожая проблема при переносе конфигурации вручную между более старой версией Glassfish и Glassfish 4.1.

Предлагаемое вами решение действительно работает, но если у вас много свойств, это будет много работы. Но добавив его через asadmin и сравнив domain.xml , я нашел причину сбоя.

Если вы просто добавите custom-resource glassfish, вы не сможете его найти. Также необходимо иметь ссылку на ресурс. В моем случае это была часть , для которой требовалось

0 голосов
/ 26 июня 2018

Решено!

Я редактировал свой домен.xml вручную, чтобы добавить свой настраиваемый ресурс JNDI в качестве интерфейса администрирования Glassfish 4.1.1, из-за которого при щелчке New ... в разделе настраиваемого ресурса JNDI выдается ошибка времени выполнения.

Как только файл domain.xml отредактирован, он хорошо отображался в панели администрирования, но, видимо, не работает должным образом.

Я создал пользовательский ресурс с помощью команды create-custom-resource консоли asadmin, объясняющей здесь .

create-custom-resource --restype java.lang.String --factoryclass org.glassfish.resources.custom.factory.PrimitivesAndStringFactory --property "value=UnitTest" projectStage

И тогда он выглядит правильно добавленным в систему. (похоже, он хранится не только в файле domain.xml)

...