Использование @Resource для загрузки записей среды - PullRequest
0 голосов
/ 08 января 2010

Я пытаюсь загрузить конфигурацию среды выполнения bean.

@Stateless
public class MyBean implements MyLocal{    
   @Resource String runtimeSetting1="default_value";
   //....
}

Я не могу узнать, как создать пользовательский ресурс на стороне сервера приложений (Glassfish) - я понятия не имею, что мне следует вводить в поле "Factory Class" Может быть, есть лучший способ загрузки конфигурации ...

Спасибо.

1 Ответ

3 голосов
/ 09 января 2010

Насколько мне известно, стандартным способом в Java EE является объявление env-entry для данных конфигурации. Это относится ко всем компонентам Java EE, таким как класс EJB 3, сервлет, фильтры, перехватчики, классы слушателей и т. Д. Здесь, объявите что-то подобное в вашем ejb-jar.xml:

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.0"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"> 
  <enterprise-beans>
    <session>
      <ejb-name>FooBean</ejb-name>
      <env-entry>
        <description>foobar entry</description>
        <env-entry-name>foo</env-entry-name>
        <env-entry-type>java.lang.String</env-entry-type>
        <env-entry-value>bar</env-entry-value>
      </env-entry>
      ...
    </session>
    ...
  </enterprise-beans>
  ....
</ejb-jar>

Затем найдите запись env с помощью JNDI или вставьте ее по имени. Например, чтобы добавить его в ваш бин:

@Resource(name="foo")
private String myProperty; 
...