这似乎不起作用(= null):
@Resource(name = "java:app/AppName")
private String appName;
Run Code Online (Sandbox Code Playgroud)
但是查找相同的名称会:
appName = (String) new javax.naming.InitialContext().lookup("java:app/AppName");
Run Code Online (Sandbox Code Playgroud)
我发现很多例子都有一个查找属性@Resource而不是名字.但是,我找不到任何相关的东西,我很有信心它应该是名字,前者不是规范的一部分.
仅供参考,我正在使用Glassfish 3.1,我正在从@PostConstruct单例bean中的方法访问appName .
在这种情况下使用" lookup"而不是" name"是正确的,因为条目已经在java:app命名空间中定义,只是被查找而不是被定义.这是Java EE 6规范(Glassfish 3.1实现)的一部分:@Resource#lookup().
除了使用查找应用程序名称InitialContext,您还可以使用属性使用@Resource注释lookup:
@Resource(lookup = "java:app/AppName")
private String appName;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4661 次 |
| 最近记录: |