空引导Bean EJB不可见

时间:2015-06-26 17:14:18

标签: java jsf java-ee ejb backing-beans

我正在使用EJB 3.1和JSF 2.0测试Java EE 6中的一个小应用程序。

问题是,当我用JS表达式调用JSF中的Backing bean并运行应用程序时,我得到了Exception,因为这个支持bean是不可用的并且是null。

see the image

这是我的JSF代码:

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
        >

<h:head>
    <title>Insertar Usuarios</title>
</h:head>

<h:body>

    <h:form id="registro">

        <h:panelGrid columns="2">

            <h:outputText value="Username:"/>
            <h:inputText id="username" value="#{registro.usuario.user_Name}"/>

            <h:outputText value="Id:"/>
            <h:inputText id="id_user" value="#{registro.usuario.userId}"/>

            <h:outputText value="Mensaje:"/>
            <h:inputText id="mensaje" value="#{registro.usuario.userMessage}" required="true"/>

            <h:commandButton value="Crear usuario" action="#{registro.insertarUsuario()}" />
        </h:panelGrid>
        <h:messages/>

    </h:form>
</h:body>


</html>

这是我的无状态EJB:

 @Stateless
public class NegocioImpl implements Negocio{

    @PersistenceContext(unitName = "manager1")
    private EntityManager em;

    @Override
    public void sayHelloFromServiceBean(User user) {

        User u = em.find(User.class, user.getUserId());

        if(u != null){
            System.out.println("Cuenta existente");
        }

        em.persist(user);

    }

    public String hola(){
        return "hola";
    }
}

最后是支持bean:

    @Named
@RequestScoped
public class Registro {

    @Inject
    private Negocio negocio;

    private User usuario;

    public Registro(){

        usuario = new User();
    }

    public User getUsuario() {

        return usuario;
    }

    public void setUsuario(User usuario) {

        this.usuario = usuario;
    }

    public void insertarUsuario(){
        negocio.sayHelloFromServiceBean(usuario);
    }

    public void saluda(){
        negocio.hola();
    }
}

项目结构是使用Intellij IDEA制作的。

Project structure

提前致谢

0 个答案:

没有答案
相关问题