我想以以下方式开发一个“基于数据库的”java桌面应用程序:
我在一个Netbeans项目(ProjectDBL.jar)中开发了(DAL + BL)。
我在一个单独的Netbeans项目(ProjectGUI)中开发了PL
我将ProjectDBL.jar作为编译库导入到ProjectGUI中。
我没有将EclipseLink库添加到ProjectGUI中,因为它们是在ProjectDBL.jar中添加的。
出于同样的原因,我没有将数据库驱动程序库添加到ProjectGUI。
我想把我的DAL+BL和PL完全分开。进一步的数据库修改(例如MySQL->SQLServer)不应该影响PL中所做的所有工作。
当我想调用ProjectDBL.jar中的任何方法时,我面临的问题是一种异常引发:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/EntityNotFoundException似乎不能由外部jar实例化持久性单元.
发布于 2014-04-06 13:32:05
编译后的库并不包括它使用的所有库。否则,每个jar文件都会有50 and大,最后会在类路径中出现几次常用的库。
您需要将您直接或间接使用的每个库添加到类路径中。
发布于 2014-04-06 13:43:02
请考虑为此使用企业应用程序原型。
DAL和BL将包含在EJB项目中,PL将包含在web项目中。
这个具体的例子正是这个原型的目的,它将确保您在每个模块中包含必要的库,而不仅仅是除去它们的依赖关系的编译类。
顺便说一句,在使用JPA时,如果DAL/BL封装在EJB类中,也会得到,所以最好像使用JEE一样隔离类,因为您可以更好地利用JEE的大量内置管道。
https://stackoverflow.com/questions/22894430
复制相似问题