1

是否可以在 JEE6 中使用 JNDI 和 @Resource 注入文件?

如果是这样,我如何在 Glassfish 中设置和 JNDI(文件)资源?

4

1 回答 1

0

如果您的目标是按如下方式配置属性文件:

@Inject
@Resource("META-INF/aws.properties")
Properties awsProperties;

那么您想使用 WELD 扩展,此处的 WELD 文档中对此进行了说明

就像将它添加到您的 POM 一样简单

<dependency>
   <groupId>org.jboss.weld</groupId>
      <artifactId>weld-extensions</artifactId>
      <version>${weld.extensions.version}</version>
      <type>pom</type>
      <scope>import</scope>
</dependency>

否则

有关程序化方法,请参阅本文。

要不然,

将您的属性存储在 DB 模式表中,并使用 JPA 2.0 使用指向您的 JNDI 的 JTA 来检索它们。

或者,如果您的应用程序是 JSF 应用程序:

  1. 在 faces-config.xml 文件中添加资源包,如下所示:

     <application>
        <resource-bundle>
            <base-name>/YourProperties</base-name>
            <var>yourProperties</var>
        </resource-bundle>
    </application>
    
  2. 在类路径或 maven 资源文件夹中添加相应的 YourProperties.properties 文件,如下所示:
    Maven资源文件夹

  3. 在您的容器托管 bean 中添加以下代码段:

    private String someString;
    
    @PostConstruct
    public void loadProperty(){
        someString = ResourceBundle.getBundle("/YourProperties").getString("prop1");
     }
    
于 2013-08-31T17:16:28.283 回答