首先,我的项目结构的小输入。
这是一个由三个模块组成的网络商店项目:
总共涉及6个NetBeans项目:
现在,我将描述这些项目是如何相互联系的(参考上面的清单):
因此,所有项目( web模块除外)都包含对包含简化或“封装”形式的实体类的项目的引用。
当我试图将这个EE应用程序(主EE项目)部署到GlassFish (v4.0)时,我一直收到这样的错误,即项目#6中定义的类在项目#5中不可见。在项目#6中定义的“Produc”类用于项目5中的远程接口。在编写代码过程中,由于引用的位置正确,我没有收到关于这个问题的任何错误。此外,主EE项目的清理和构建也成功完成,但在部署时,我仍然会得到相同的错误:
package musicshop.entity.encapsulated does not exist
import musicshop.entity.encapsulated.Product;注意:musicshop.entity.encapsulated是来自项目#6的包,包含"Product“类。而且,这个import musicshop.entity.encapsulated.Product;是来自项目5的一个远程接口的行。
同样重要的是,在我从GlassFish中卸载应用程序并试图重新部署应用程序之前,这一切都很好。
发布于 2013-10-22 13:54:43
我很高兴地说,我已经找到了解决这个问题的办法。它不漂亮,但在我找到另一种方法之前,它会达到目的。
我发现在GlassFish上只能部署一个类库项目。我过去只有一个这样的项目,一个包含EJB远程接口的项目。但是,当我创建另一个类库项目时,它将保存实体类的简化版本(我这样做是为了将所有这些类保存在一个地方,并在需要使用它们的地方导入它们。这样,如果我想做一些编辑,我只需要做一次。)
所以,我要做的是消除这个额外的类库项目,只需在需要使用它们的任何地方复制这些类。现在,我已经将它们分散到其他项目上,这将使维护它们变得困难,但它确实解决了在服务器上部署的问题。
在这样做之后,我记得我曾经尝试过做一些简单的事情--创建额外的类库项目,其中包含一些需要导入的东西,而且在GlassFish上部署应用程序时也有同样的错误。当然,我用和这个一样的方式解决了这个问题。因此,我想知道为什么不可能部署多个类库项目?有什么想法吗?
https://stackoverflow.com/questions/19506453
复制相似问题