2010-11-03 101 views
2

我一直在研究在Netbeans 6.9.1上创建的Web应用程序,并且一切正常,我能够毫无问题地部署它。今天,我创建了一个企业应用程序,并用原始Web应用程序中的文件夹替换了企业应用程序Web模块上的'web'和'src'文件夹的内容。 一切似乎都没问题,它编译时没有问题,并在运行'clean and build'时生成ear文件。但是当我尝试部署企业应用程序时,我不断收到以下错误:org.glassfish.deployment.common.DeploymentException:by java.lang.NoClassDefFoundError:project/dao/MerchantDao无法将企业应用程序部署到glassfish

我看过生成的耳朵,它有预期的META-INF和战争文件。耳内的战争文件也可以,我试图单独部署它,它工作正常。

我不知道还有什么我可以尝试,恐怕这可能是玻璃鱼的错误,我只是在浪费我的时间。

有人可以帮助我吗?

亲切的问候,

卡洛斯·豪尔赫·费雷拉

+0

我执行了一些更多的测试,并意识到如果我删除所有的EJB注释,应用程序将正确部署。我是否缺少某种配置? – 2010-11-04 09:59:07

回答

0

我不认为你提供足够的信息,以获取有关当前问题的答案(例如,在EAR结构)。

无论如何,如果你没有强大的模块化的需求,我的建议是使用the WAR packaging(与Java EE 6,使用EAR是不是强制性的,你可以WEB-INF/classes下EJB打包或WEB-INF/lib下,如果你捆绑它们作为EJB-JAR)。

哦,顺便说一下,我在GlassFish上部署了一个Java EE 6 EAR,并且它工作正常。

+0

嗨帕斯卡尔,感谢您的回复。我用ejbs试过了其他耳文件,并且我成功地将它们部署到了glassfish。我只是遇到了一个项目的问题。如果我把所有的EJB放在一个EJB模块中,一切正常,但是当我用@Stateless注释从WEB模块注释一个类时,我开始发现错误。 – 2010-11-05 16:10:01

+0

@卡洛斯我不确定我是否关注一切。您是仅使用WAR还是使用EAR?在前一种情况下,请仔细检查webapp的部署描述符的版本。在后面的例子中,为什么要在Web模块中添加EJB注释? – 2010-11-06 09:39:30

+0

@帕斯卡,我正在使用一个EAR。我不认为这是为什么我要在WEB模块中使用EJB注释的问题,真正的问题是:为什么我不能?我从netbeans网站(The NewsAppEE6应用程序)中挑选了一个示例,他们在Web模块(@Singleton和@LocalBean)上使用EJB注释。如果我在其中一个类中使用了相同的注释,我不能再部署该应用程序。我不必使用EAR,我可以轻松使用WAR,但我只是想了解是什么导致了这个错误。 (顺便说一句,部署描述符使用3.0版) – 2010-11-08 08:57:15

相关问题