Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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
使用gwt将实体对象从服务器序列化到客户端时,客户端可持久化NoClassDefFoundError_Gwt_Jpa_Openjpa - Fatal编程技术网

使用gwt将实体对象从服务器序列化到客户端时,客户端可持久化NoClassDefFoundError

使用gwt将实体对象从服务器序列化到客户端时,客户端可持久化NoClassDefFoundError,gwt,jpa,openjpa,Gwt,Jpa,Openjpa,我正在使用ApacheOpenJPA访问服务器端的数据库。我试图从gwt客户端调用服务器以检索实体对象,但此请求总是失败,并显示错误消息:NoClassDefFoundError org/apache/openjpa/enhance/PersistenceCapable 我尝试在gwt.xml文件中定义增强的实体类,但没有帮助: <set-configuration-property name="rpc.enhancedClasses" value="com.jobsin.domain.S

我正在使用ApacheOpenJPA访问服务器端的数据库。我试图从gwt客户端调用服务器以检索实体对象,但此请求总是失败,并显示错误消息:NoClassDefFoundError org/apache/openjpa/enhance/PersistenceCapable

我尝试在gwt.xml文件中定义增强的实体类,但没有帮助:

<set-configuration-property name="rpc.enhancedClasses" value="com.jobsin.domain.SystemUser,com.jobsin.domain.Keyword,com.jobsin.domain.Job">/
系统用户类:

@Entity
public class SystemUser implements Serializable
{
    /**
     * 
     */
    private static final long serialVersionUID = -1673271845552139219L;

    @Id
    @GeneratedValue
    private long id; 

    @NotNull
    private String firstName;

    @NotNull
    private String lastName;

    @NotNull
    @Column(unique=true)
    private String email;


    @Temporal(TemporalType.TIMESTAMP) 
    private Date lastSearch;

    @ManyToMany(cascade = CascadeType.ALL)
    private Set<Job> jobs = new HashSet<Job>();

    @ManyToMany(cascade = CascadeType.ALL)
    private Set<Keyword> keywords = new HashSet<Keyword>();
}
@实体
公共类SystemUser实现了可序列化
{
/**
* 
*/
私有静态最终长serialVersionUID=-1673271845552139219L;
@身份证
@生成值
私人长id;
@NotNull
私有字符串名;
@NotNull
私有字符串lastName;
@NotNull
@列(唯一=真)
私人字符串电子邮件;
@时态(TemporalType.TIMESTAMP)
私人日期查询;
@多个(级联=级联类型.ALL)
私有集作业=新HashSet();
@多个(级联=级联类型.ALL)
私有集关键字=新HashSet();
}

最简单的解决方案是将OpenJPA二进制文件添加到GWT客户端类路径。

OpenJPA jar位于WEB-INF/lib库下。我正在使用gwt eclipse插件运行服务器(jeti)。还有什么我该做的吗?
@Entity
public class SystemUser implements Serializable
{
    /**
     * 
     */
    private static final long serialVersionUID = -1673271845552139219L;

    @Id
    @GeneratedValue
    private long id; 

    @NotNull
    private String firstName;

    @NotNull
    private String lastName;

    @NotNull
    @Column(unique=true)
    private String email;


    @Temporal(TemporalType.TIMESTAMP) 
    private Date lastSearch;

    @ManyToMany(cascade = CascadeType.ALL)
    private Set<Job> jobs = new HashSet<Job>();

    @ManyToMany(cascade = CascadeType.ALL)
    private Set<Keyword> keywords = new HashSet<Keyword>();
}