Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法创建托管bean DBUserMBean。发现以下问题:-找不到Bean或属性类(…)_Java_Mysql_Hibernate_Jsf 2_Primefaces - Fatal编程技术网

Java 无法创建托管bean DBUserMBean。发现以下问题:-找不到Bean或属性类(…)

Java 无法创建托管bean DBUserMBean。发现以下问题:-找不到Bean或属性类(…),java,mysql,hibernate,jsf-2,primefaces,Java,Mysql,Hibernate,Jsf 2,Primefaces,我正在尝试使用Hibernate和PrimeFaces创建一个带有MySQL数据库的Java和JSF项目 Hibernate层工作正常(基本CRUD工作正常),但在我使用基本面制作基本GUI并将项目部署到Tomcat服务器后,它返回一个错误: Unable to create managed bean DBUserMBean. The following problems were found: - Bean or property class com/hibernate/maven/Hib

我正在尝试使用Hibernate和PrimeFaces创建一个带有MySQL数据库的Java和JSF项目

Hibernate层工作正常(基本CRUD工作正常),但在我使用基本面制作基本GUI并将项目部署到Tomcat服务器后,它返回一个错误:

Unable to create managed bean DBUserMBean. The following problems were 
found: - Bean or property class 
com/hibernate/maven/Hibernate_APP/DBUserManagedBean for managed bean 
DBUserMBean cannot be found.
以下是我的项目中的所有文件:

DBUser

@Entity
public final class DBUser{
    private Long  id;
    private String kolumna1;
    private String kolumna2;
    private String kolumna3;
    private int  kolumna4;

    @Id
    @GeneratedValue
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }

    @Override
    public String toString() {
        StringBuffer strBuff = new StringBuffer();
        strBuff.append("id :").append(id);
        strBuff.append("kolumna1 :").append(kolumna1);
        strBuff.append("kolumna2 :").append(kolumna2);
        strBuff.append("kolumna3 :").append(kolumna3);
        strBuff.append("kolumna4 :").append(kolumna4);
        return strBuff.toString();
    }
}
DBUserManagedBean

@ManagedBean(name="DBUserManagedBean")
@SessionScoped
public class DBUserManagedBean implements Serializable{

    private static final long serialVersionUID = 1L;
    private static Logger log = Logger.getLogger(DBUserManagedBean.class);
    private static final String SUCCESS = "success";
    private static final String ERROR   = "error";

    private Long  id;
    private String kolumna1;
    private String kolumna2;
    private String kolumna3;
    private int  kolumna4;

    private String message;

    //getters and setters   

    public String getMessage() {
        StringBuffer strBuff = new StringBuffer();
        strBuff.append("id :").append(id);
        strBuff.append("kolumna1 :").append(kolumna1);
        strBuff.append("kolumna2 :").append(kolumna2);
        strBuff.append("kolumna3 :").append(kolumna3);
        strBuff.append("kolumna4 :").append(kolumna4);
        this.setMessage(strBuff.toString());
        return this.message;
    }

    public void setMessage(String message) {
        this.message = message;
    } 

    public String save() {
        String result = null;
        Session session = HibernateUtil.getSessionFactory().openSession();

        DBUser dbuser = new DBUser();

        dbuser.setKolumna1(this.getKolumna1());
        dbuser.setKolumna2(this.getKolumna2());
        dbuser.setKolumna3(this.getKolumna3());
        dbuser.setKolumna4(this.getKolumna4());

        Transaction tx = null;

        try {
            tx = session.beginTransaction();
            session.save(dbuser);
            tx.commit();
            log.debug("New Record : " + dbuser + ", wasCommitted : " + tx.wasCommitted());
            result = SUCCESS;
        } catch (Exception e) {
            if (tx != null) {
                tx.rollback();
                result = ERROR;
                e.printStackTrace();
            }
        } finally {
            session.close();
    }
    return result;
}

public List<DBUser> getDBUsers() {
    Session session = HibernateUtil.getSessionFactory().openSession();
    List<DBUser>  dbuserList = session.createCriteria(DBUser.class).list();
    return dbuserList;
}

public void reset() {
    this.setKolumna1("");
    this.setKolumna2("");
    this.setKolumna3("");
    this.setKolumna4(kolumna4);
}

}

至于我的帖子没有回答这个问题,我只会把评论留给作者的代码

faces config.xml
和通过
@ManagedBean
注释声明托管bean两次。虽然它看起来可能会产生歧义,但
faces config.xml
优先于带注释的配置。不过,按照我的口味,给豆子命名两次,并使用不同的名称,可能会导致多个错误。因此,我建议使用注释或xml格式命名bean

请注意,
faces config.xml
是定义托管bean和导航案例结果的老派方法。JSF2.x支持注释和隐式导航

顺便说一句,您的
@Entity
类缺少
@Column
@Table
的注释,您的支持bean应该具有您的实体的DTO,或者具有分离实体本身的DTO,像您这样插入多个文件是一种不好的做法,并且您的操作方法应该返回导航案例结果,如
welcome
,等等


最后,按照@BalusC在注释#3中正确的说明去做,并检查xml配置文件中的完全限定名和/或确保类文件在构建中实际存在。

您缺少了
@Table(name=“your Table name”)
@column
注释

您将删除

value="#{DBUserMBean.getDBUsers()}"
试试这个

value="#{DBUserMBean.getDBUsers}"

请显示类的包定义:public类DBUserManagedBean implements serializableforu Marcos Maia:package com.hibernate.maven.hibernate_APP;在faces-config.xml中,我还有:com.hibernate.maven.hibernate\u APP.dbusermanagedbean这不是问题的原因。XML只是覆盖注释。@BalusC我知道优先级规则,但在错误中没有指定类的依赖项注入。那么是什么导致了这个问题呢?正如异常消息所说,类只是在类路径中丢失了。所以,要么FQN错误,要么类文件在构建中物理上不存在。至于优先规则,你的答案根本没有涵盖这一点,而现在发现你已经知道了,-1因为没有涵盖它,并且为具体问题添加了不相关的解释(这最初意味着你根本不知道优先规则)。我从DBUserManagedBean中删除了adnotations,仍然得到了相同的错误。packacge的名称为:com.hibernate.maven.hibernate_APP;在faces-config.xml中,我还有:com.hibernate.maven.hibernate_APP.dbusermanagedbean尝试清理项目,然后重建它。如果问题仍然存在,请向我们提供反馈。
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.prime.com.tr/ui">

<h:head>
<title>Hibernate_APP</title>
</h:head>
<body>
<h:form>
    <h:outputText value="Saved Record is #{DBUserMBean.message}"></h:outputText>
    <p:dataTable id="DBUsers" value="#{DBUserMBean.getDBUsers()}" var="DBUser"    
style="width: 10%">


        <p:column>
            <f:facet name="header">
                <h:outputText value="ID" />
            </f:facet>
            <h:outputText value="#{DBUser.id}" />
        </p:column>

       <p:column>
            <f:facet name="header">
                <h:outputText value="kolumna1" />
            </f:facet>
            <h:outputText value="#{DBUser.kolumna1}" />
        </p:column>

        <p:column>
            <f:facet name="header">
                <h:outputText value="kolumna2" />
            </f:facet>
            <h:outputText value="#{DBUser.kolumna2}" />
        </p:column>

          <p:column>
            <f:facet name="header">
                <h:outputText value="kolumna3" />
            </f:facet>
            <h:outputText value="#{DBUser.kolumna3}" />
        </p:column>


          <p:column>
            <f:facet name="header">
                <h:outputText value="kolumna4" />
            </f:facet>
            <h:outputText value="#{DBUser.kolumna4}" />
        </p:column>




    </p:dataTable>
  </h:form>
</body>
</html>
WARNING: /pages/index.xhtml @14,87 value="#{DBUserManagedBean.kolumna1}": 
Target Unreachable, identifier 'DBUserManagedBean' resolved to null
javax.el.PropertyNotFoundException: /pages/index.xhtml @14,87 
value="#{DBUserManagedBean.kolumna1}": Target Unreachable, 
identifier 'DBUserManagedBean' resolved to null
value="#{DBUserMBean.getDBUsers()}"
value="#{DBUserMBean.getDBUsers}"