Jsf 2 EJB的JNDI查找失败
我正在用netbeans 7.2.1和glassfish 3.1开发一个maven-ear项目。 我想在JSF托管控制器中使用无状态EJB Facade,由于EJB注入不起作用,我正在尝试进行JNDI查找。因此,我复制了glassfish logging打印的以下便携式JNDI名称: 信息:EJB5181:EJBAirportFacade的可移植JNDI名称:[java:global/com.procc_-FLAMS-ear_-ear_1.0-SNAPSHOT/FLAMS-web-1.0-SNAPSHOT/AirportFacade,java:global/com.procc_-FLAMS-ear_1.0-SNAPSHOT/AirportFacadeLocal] 当我运行项目时,它说查找失败 错误消息:Jsf 2 EJB的JNDI查找失败,jsf-2,ejb-3.0,jndi,Jsf 2,Ejb 3.0,Jndi,我正在用netbeans 7.2.1和glassfish 3.1开发一个maven-ear项目。 我想在JSF托管控制器中使用无状态EJB Facade,由于EJB注入不起作用,我正在尝试进行JNDI查找。因此,我复制了glassfish logging打印的以下便携式JNDI名称: 信息:EJB5181:EJBAirportFacade的可移植JNDI名称:[java:global/com.procc_-FLAMS-ear_-ear_1.0-SNAPSHOT/FLAMS-web-1.0-SNA
SEVERE: javax.naming.NamingException: Lookup failed for 'java:global/FLAMS-ear-1.0-SNAPSHOT/FLAMS-ejb-1.0-SNAPSHOT/AirportFacade!com.procc.dao.AirportFacadeLocal' in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is javax.naming.NameNotFoundException: FLAMS-ear-1.0-SNAPSHOT]
我不知道为什么
以下是pom标题:
耳模块:
<modelVersion>4.0.0</modelVersion> <parent>
<artifactId>FLAMS</artifactId>
<groupId>com.procc</groupId>
<version>1.0-SNAPSHOT</version> </parent>
<groupId>com.procc</groupId> <artifactId>FLAMS-ear</artifactId> <version>1.0-SNAPSHOT</version> <packaging>ear</packaging>
<name>FLAMS-ear</name>
JSF bean中的JNDI查找:
@ManagedBean(name=“airportController”)@ViewScoped公共类
AirportController扩展了AbstractController实现
可序列化{
private transient AirportFacade ejbFacade;
public AirportController() {
super(Airport.class);
}
@施工后
公共void init(){
@Override
protected EntityManager getEntityManager() {
return em;
}
public AirportFacade() {
super(Airport.class);
} }
private transient AirportFacade ejbFacade;
public AirportController() {
super(Airport.class);
}
super.setFacade(ejbFacade);
if(ejbFacade==null){
try {
Context ctx = new InitialContext();
ejbFacade = (AirportFacade)ctx.lookup("java:global/com.procc_FLAMS-ear_ear_1.0-SNAPSHOT/FLAMS-web-1.0-SNAPSHOT/AirportFacade!com.procc.dao.AirportFacadeLocal");
} catch (NamingException ex) {
Logger.getLogger(AirportController.class.getName()).log(Level.SEVERE, null, ex);
}
}
}