当前位置: 首页 > 知识库问答 >
问题:

带有Mojarra 2.2和EJB的Glassfish:注入失败(NullPointerException)

太叔京
2023-03-14

我有一个带有Glassfish 3服务器的正常动态web项目。我有一个托管bean,它注入了一个无状态bean。与Mojarra2.1.6所有工作良好。

但是当我将javax.faces-2.2.7.jar(Mojarra)添加到Web-Inf lib文件夹并尝试访问我的站点时,我的“服务”得到一个Nullpointerexception。

@ManagedBean
@ViewScoped
public class MyBean {
@EJB
private MyStatelessBean statelessBean;

private String hello;

@PostConstruct
public void init(){
    setHello(statelessBean.sayHello());
}

public String getHello() {
    return hello;
}

public void setHello(String hello) {
    this.hello = hello;
}
}
@Stateless
public class MyStatelessBean {

public String sayHello(){
    return "Hello";
}
}

XHTML:

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>

</h:head>

<h:body>
<h:outputText value="#{myBean.hello}" />
</h:body>
</html>

共有1个答案

段干弘毅
2023-03-14

解决方案已重置glassfish缓存,所有工作正常;)

 类似资料:
  • jboss日志:- JBAS015876:开始部署“medmark.war”17:33:56948 INFO[org.jboss.as.ejb3.deployment.processors.ejbndibingsdeploymentunitprocessor](MSC服务线程1-8)部署单元部署“medmark.war”中名为HelloService的会话bean的JNDI绑定如下: EJB类:

  • 我正在尝试将一个无状态的EJB注入我的EntityListner。调用了我的EntityListener的方法,但注入的EJB解析为,因此引发了NullPointerException。 我在这里发现的前面的问题是关于这个问题的,JPA只提供JPA2.1上的CDI,但不提供JPA2.0上的CDI,但我使用的是JPA2.1。那么这里还有什么问题呢? 将我的EJB注入到其他会话bean中运行良好,无论

  • 唯一的问题是注入不同模块中的bean。这怎么能修好呢?

  • 有人知道这是什么问题吗?这真的要了我的命。

  • 问题内容: 使用新的EJB 3.1规范,是否可以将EJB注入pojo?我知道在EJB 3.0中,@ EJB批注可用于注入EJB,但这不适用于简单的pojos。 如果不是,我必须在JNDI中查找bean,因为我知道您不能简单地使用new关键字。 问题答案: 是的,使用JNDI查找。 由于您的POJO是由您创建的(我假设),因此容器不负责注入依赖项。

  • 我用NetBeans8.2和GlassFish5.0中的一些EJB创建了一个小小的Web应用程序。过了一会儿,我把它删掉了。不仅通过IDE,而且从硬盘驱动器。(该项目也没有部署在服务器上)。当我试图用一个非常接近已删除名称(XApp2和XApp)的名称来执行一个项目时,新项目的EJB模块的“Enterprise Beans”列表中的EJB-s appers。但不是在“源包”中,EJB-s在“企业b