首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与表示层(Netbeans 7.x)通信业务层(JPA)问题

与表示层(Netbeans 7.x)通信业务层(JPA)问题
EN

Stack Overflow用户
提问于 2014-04-06 13:05:35
回答 2查看 167关注 0票数 0

我想以以下方式开发一个“基于数据库的”java桌面应用程序:

  • 使用JPA ( Netbeans 7.4生成的POJO)开发数据访问层(DAL)
  • 开发业务层(BL) (我自己的类、控制器等)
  • 开发表示层(PL):图形用户界面(面板、框架、对话框)
  • 使(PL)与(BL)通信

我在一个Netbeans项目(ProjectDBL.jar)中开发了(DAL + BL)。

我在一个单独的Netbeans项目(ProjectGUI)中开发了PL

我将ProjectDBL.jar作为编译库导入到ProjectGUI中。

我没有将EclipseLink库添加到ProjectGUI中,因为它们是在ProjectDBL.jar中添加的。

出于同样的原因,我没有将数据库驱动程序库添加到ProjectGUI。

我想把我的DAL+BL和PL完全分开。进一步的数据库修改(例如MySQL->SQLServer)不应该影响PL中所做的所有工作。

当我想调用ProjectDBL.jar中的任何方法时,我面临的问题是一种异常引发:

代码语言:javascript
复制
Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/EntityNotFoundException

似乎不能由外部jar实例化持久性单元.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-06 13:32:05

编译后的库并不包括它使用的所有库。否则,每个jar文件都会有50 and大,最后会在类路径中出现几次常用的库。

您需要将您直接或间接使用的每个库添加到类路径中。

票数 0
EN

Stack Overflow用户

发布于 2014-04-06 13:43:02

请考虑为此使用企业应用程序原型。

DAL和BL将包含在EJB项目中,PL将包含在web项目中。

这个具体的例子正是这个原型的目的,它将确保您在每个模块中包含必要的库,而不仅仅是除去它们的依赖关系的编译类。

顺便说一句,在使用JPA时,如果DAL/BL封装在EJB类中,也会得到,所以最好像使用JEE一样隔离类,因为您可以更好地利用JEE的大量内置管道。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22894430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档