EJB注释在JSF中不起作用

时间:2017-04-12 16:39:42

标签: jsf java-ee glassfish ejb

我从JEE开始,我需要使用JSF-EJB-JPA。

我有一个EJB项目,它部署好了,我的war文件也是如此。当我在战争中使用注释EJB时,它根本不起作用,没有信息显示

我有一个h:dataTable,我想用来自数据库的信息来填充它,但是数据没有显示(我不知道它是否没有到达WAR或只是它没有显示)。该表是空的,只有我(当然)直接写的标题。

如果我不在任何地方使用@EJB,那么未正确显示的数据是正确显示的,例如,如果我写“Hello world”我无法打印出来,但是当我敢于使用@EJB时,即使是那些信息停止工作,好像使用@EJB打破了xhtml和经理之间的所有连接。

我按照教程,在视频中一切都很顺利。

控制器的一部分:

obj

xhtml的pice

import javax.inject.Named;
import javax.inject.Inject;
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;
import javax.ejb.EJB;

@Named(value = "editorialController")
@SessionScoped
public class EditorialController implements Serializable {

    @EJB//(name=Tutorial-ejb")
    private EditorialFacade editorialFacade;
    private Integer randomInt;

    public List<Editorial> findAll()
    {
        return this.editorialFacade.findAll();
    }

    public Integer getRandomInt() {
        return randomInt;
    }

    public void setRandomInt(Integer randomInt) {
        this.randomInt = randomInt;
    }
}

我试过:#{editorialController.findAll()}和#{editorialController.findAll}

对于EJB,像往常一样:实体包,其他用于外墙; netbeans生成它们,所以我认为它不是必要的复制和粘贴代码。 我正在使用glassfish(payara)。 web.xml包含所有JSF内容。

persistence.xml

<h:body>
Hello from Facelets
<h:outputLabel value="#{editorialController.randomInt}"></h:outputLabel>
<h:form>
    <h:dataTable var="p" value="#{editorialController.findAll()}">
        <h:column>
            <f:facet name="Header">
                <h:outputText value="NAME"></h:outputText>
            </f:facet>
            <h:outputText value="#{p.nombre}"></h:outputText>
         </h:column>
    </h:dataTable>
</h:form>
</h:body>

0 个答案:

没有答案