zac*_*usz 4 java ejb glassfish cdi ejb-3.1
当我将EJB 3.1 bean注入由@Inject创建的POJO时,注入工作.当我自己构建POJO时,它不会(Glassfish v3).这是正确的行为吗?
我的类(在EJB模块中):
@Singleton
@LocalBean
@Startup
@Named
public class NewSingletonBean {
@PostConstruct
public void init(){
System.out.println("NewSingletonBean INIT");
}
}
Run Code Online (Sandbox Code Playgroud)
_
public class MyPOJO {
@Inject NewSingletonBean newSingletonBean;
public void sth(){
System.out.println("EJB injected into POJO: " + (newSingletonBean != null));
}
}
Run Code Online (Sandbox Code Playgroud)
这不起作用:
@Singleton
@LocalBean
@Startup
@DependsOn(value="NewSingletonBean")
public class NewSingletonBean2 {
@Inject NewSingletonBean newSingletonBean;
@PostConstruct
public void init(){
System.out.println("NewSingletonBean2 INIT");
System.out.println("EJB injected into EJB: " + (newSingletonBean != null));
MyPOJO p = new MyPOJO();
p.sth();
}
}
Run Code Online (Sandbox Code Playgroud)
_
这个工作正常:
@Singleton
@LocalBean
@Startup
@DependsOn(value="NewSingletonBean")
public class NewSingletonBean2 {
@Inject NewSingletonBean newSingletonBean;
@Inject MyPOJO p;
@PostConstruct
public void init(){
System.out.println("NewSingletonBean2 INIT");
System.out.println("EJB injected into EJB: " + (newSingletonBean != null));
p.sth();
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用NetBeans 7.0.1.
dist目录结构:
? CDITest.ear
?
????gfdeploy
????CDITest
????CDITest-ejb_jar
? ? .netbeans_automatic_build
? ? .netbeans_update_resources
? ?
? ????META-INF
? ? beans.xml
? ? MANIFEST.MF
? ?
? ????tries
? MyPOJO.class
? NewSingletonBean.class
? NewSingletonBean2.class
?
????CDITest-war_war
? ? index.jsp
? ?
? ????META-INF
? ? MANIFEST.MF
? ?
? ????WEB-INF
? ????classes
? .netbeans_automatic_build
? .netbeans_update_resources
?
????META-INF
MANIFEST.MF
Run Code Online (Sandbox Code Playgroud)
未包装的EAR结构:
? CDITest-ejb.jar
? CDITest-war.war
?
????META-INF
MANIFEST.MF
Run Code Online (Sandbox Code Playgroud)
解压缩的EJB模块jar结构:
????META-INF
? beans.xml
? MANIFEST.MF
?
????tries
MyPOJO.class
NewSingletonBean.class
NewSingletonBean2.class
Run Code Online (Sandbox Code Playgroud)
这是正确的行为吗?
| 归档时间: |
|
| 查看次数: |
5813 次 |
| 最近记录: |