サーバー側でデータベースにアクセスするためにapache open JPAを使用しています。エンティティ オブジェクトを取得するために、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">/
私のサーバー機能:
public SystemUser getCurrentUser()
throws InvalidUser{
HttpServletRequest httpServletRequest = this.getThreadLocalRequest();
HttpSession session = httpServletRequest.getSession();
SystemUser user=null;
Cookie[] cookies = httpServletRequest.getCookies();
SocialNetworkCookie cookie = network.generateCookieObject();
if(!cookie.init(cookies)){
session.invalidate();
throw new InvalidUser(); // no user was connected, user need to login
}
//try get user details from db
EntityManager em = factory.createEntityManager();
SystemUserDAOImpl userdao = new SystemUserDAOImpl(em);
user = userdao.findUserByNetworkId(cookie.getMemberId());
//make user detach
em.close();
return user;
}
SystemUser クラス:
@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>();
}