使用gwt将实体对象从服务器序列化到客户端时,客户端可持久化NoClassDefFoundError
我正在使用ApacheOpenJPA访问服务器端的数据库。我试图从gwt客户端调用服务器以检索实体对象,但此请求总是失败,并显示错误消息:NoClassDefFoundError org/apache/openjpa/enhance/PersistenceCapable 我尝试在gwt.xml文件中定义增强的实体类,但没有帮助:使用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
<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>();
}