У меня есть EJB TimeServiceEJB с удаленным интерфейсом TimeService.В дескрипторе Deploy моего EJB-модуля есть:
<ejb-name>TimeServiceEJB</ejb-name>
...
<env-entry>
<description>... </description>
<env-entry-name>variable</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>10</env-entry-value>
</env-entry>
Мне нужно получить эту переменную из клиентского приложения и иметь возможность ее редактировать.Я пытаюсь сделать это так:
Properties p = new Properties();
p.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");
p.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");
p.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
p.setProperty("org.omg.CORBA.ORBInitialHost", "localhost");
p.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
InitialContext iniCtx = new InitialContext(p);
Integer variable = (Integer) iniCtx.lookup("java:comp/ejb/TimeServiceEJB/variable");
Но я ничего не получил.Пытался искать по-разному («java: global / ejb / TimeServiceEJB / variable», «java: comp / env / TimeServiceEJB / variable», «java: global / ear-name / module-name / TimeServiceEJB /) - всегда имел"javax.naming.NameNotFoundException: объект не привязан для ..."
Попытка установить mappingName этой переменной с помощью annotaion @Resource (name = "variable", mappedName = "env / variable") и поискаот "env / variable", но получил NameNotFoundException.
Есть ли идеи, как получить эту переменную? И второй вопрос: могу ли я отредактировать ее значение?