2010-11-03 102 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

相關問題