是否可以在JEE6中使用JNDI和@Resource注入文件?
如果是这样,我如何在Glassfish中设置和JNDI(文件)资源?
答案 0 :(得分:0)
如果您的目标是按如下方式配置属性文件:
@Inject
@Resource("META-INF/aws.properties")
Properties awsProperties;
然后你想使用WELD文档中解释的WELD扩展here
就像将它添加到您的POM一样简单
<dependency>
<groupId>org.jboss.weld</groupId>
<artifactId>weld-extensions</artifactId>
<version>${weld.extensions.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
有关程序化方法,请参阅此article。
将您的属性存储在数据库模式表中,并使用JPA 2.0使用指向JNDI的JTA检索它们。
在faces-config.xml文件中添加资源包,如下所示:
<application>
<resource-bundle>
<base-name>/YourProperties</base-name>
<var>yourProperties</var>
</resource-bundle>
</application>
在classpath或maven resources文件夹中添加相应的YourProperties.properties文件,如下所示:
在容器托管bean中添加以下代码段:
private String someString;
@PostConstruct
public void loadProperty(){
someString = ResourceBundle.getBundle("/YourProperties").getString("prop1");
}