我们使用JavaFX作为前端实现了Java SE程序,使用Microsoft SQL Server作为后端实现了JPA / Hibernate。我们的模型是从数据库自动生成的。 我们现在想要使用相同的技术和访问方法在JSP上构建Web界面,而无需在新项目中再次配置Hibernate。
使用DAO接口对服务类进行数据库访问。访问方法看起来像这样:
public Address findAddressById(AddressPK id) {
Address address = null;
EntityManager em = EntityManagerUtil.getEntityManager();
EntityTransaction tx = null;
try {
tx = em.getTransaction();
tx.begin();
address = (Address) addressDAO.findByID(em, Address.class, id);
tx.commit();
} catch (RuntimeException e) {
if ( tx != null && tx.isActive() ) tx.rollback();
e.printStackTrace();
} finally {
em.close();
}
return address;
}
我们将Hibernate / JavaFx项目添加到新的Web项目并尝试访问相同的方法。一切看起来都很好,但在执行Web项目时,我们得到以下异常:
Servlet.service() for servlet [ssad.dsds.mobile.LoginServlet] in context with path [/ssad] threw exception [Servlet execution threw an exception] with root cause
java.lang.ClassNotFoundException: sop.lba.relaunch.utility.search.MainSearchResult
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)
at sop.lba.mobile.LoginServlet.doPost(LoginServlet.java:37)
...
我们如何解决这个问题?通常可以在Tomcat JSP项目中重用Java SE Hibernate项目中的方法吗?