2

部署到 tomcat 后,我​​在我的axis2 Web 服务中得到以下信息。

java.lang.IllegalArgumentException: No [EntityType] was found for the key class [VOs.CurriculumTree] in the Metamodel - please verify that the [Entity] class was referenced in persistence.xml using a specific <class>VOs.CurriculumTree</class> property or a global <exclude-unlisted-classes>false</exclude-unlisted-classes> element.

当我从 Eclipse 运行时,JPA 工作正常。我在 persistence.xml 中定义了实体,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
    <persistence-unit name="NewAge-Test" transaction-type="RESOURCE_LOCAL">
        <class>VOs.CurriculumTree</class>
        <properties>
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/contentserver_development"/>
            <property name="javax.persistence.jdbc.user" value="root"/>
            <property name="javax.persistence.jdbc.password" value="quadfusion"/>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
        </properties>
    </persistence-unit>
</persistence>

这是我的实体类:

@Entity
@Table(name="curriculum_trees")
public class CurriculumTree implements NodeInfo, Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private int id;

    @LevelColumn
    @Column(name="depth",updatable=false)
    private int level;

    @Lob
    private String description;

    @LeftColumn
    @Column(updatable=false)
    private int lft;

    private String name;

    @Column(name="node_type")
    private String nodeType;

    @Column(name="parent_id")
    private int parentId;

    private int position;

    private boolean prassoTopicGroup;

    @RightColumn
    @Column(updatable=false)
    private int rgt;

    @RootColumn
    private int rootId;

    public CurriculumTree() {
    }

    public int getId() {
        return this.id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getDescription() {
        return this.description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public int getLft() {
        return this.lft;
    }

    public void setLft(int lft) {
        this.lft = lft;
    }

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getNodeType() {
        return this.nodeType;
    }

    public void setNodeType(String nodeType) {
        this.nodeType = nodeType;
    }

    public int getParentId() {
        return this.parentId;
    }

    public void setParentId(int parentId) {
        this.parentId = parentId;
    }

    public int getPosition() {
        return this.position;
    }

    public void setPosition(int position) {
        this.position = position;
    }

    public boolean getPrassoTopicGroup() {
        return this.prassoTopicGroup;
    }

    public void setPrassoTopicGroup(boolean prassoTopicGroup) {
        this.prassoTopicGroup = prassoTopicGroup;
    }

    public int getRgt() {
        return this.rgt;
    }

    public void setRgt(int rgt) {
        this.rgt = rgt;
    }

    @Override
    public int getLeftValue() {
        return getLft();
    }

    @Override
    public int getRightValue() {
        return getRgt();
    }

    @Override
    public int getLevel() {
        return this.level;
    }

    @Override
    public int getRootValue() {
        return 0;
    }

    @Override
    public void setLeftValue(int value) {
        setLft(value);
    }

    @Override
    public void setRightValue(int value) {
        setRgt(value);
    }

    @Override
    public void setLevel(int level) {
        this.level = level;
    }

    @Override
    public void setRootValue(int value) {
        // TODO Auto-generated method stub
    }

    @Override public String toString() {
        return "[Curriculum Node: id=" + this.id + ", name=" + this.name + "-" + super.toString() + "]";
    }

}

我尝试了包含标签的替代方法,<exclude-unlisted-classes>false</exclude-unlisted-classes>persistence.xml它没有任何好处。

4

3 回答 3

0

删除对<class>com.hm.newAge.VOs.CurriculumTree</class>

并把财产<exclude-unlisted-classes>false</exclude-unlisted-classes>

于 2013-04-12T13:20:51.177 回答
0

错误报告VOs.CurriculumTree,但在您的持久性 xml 中存在com.hm.newAge.VOs.CurriculumTree包问题。

于 2013-04-12T13:37:42.607 回答
0

如果您不使用托管持久性单元,请尝试在使用后关闭实体管理器工厂。

于 2014-07-21T13:13:18.003 回答