2012-11-02 34 views
0

我有一個名爲「eshop」的Web動態項目,我正在爲其製作JPA。我已經通過文件新建JPA項目的新JPA增加,稱之爲「JPA」與所謂的「模型」在servlet的商鋪項目中,我通過在Weblogic上集成JPA的Java NoClassDefFoundError

import model.*; 

ProductModelDAO dao4 = new ProductModelDAOImpl("jpa"); 
ArrayList products = dao4.getProductsByCategory(categoryId); 

但它一直給了NoClassDefFoundError的錯誤稱之爲包名。 Eclipse不允許我爲JPA提供與包名稱爲「eshop」的eshop項目相同的包名稱。在使用屬性窗口的JPA項目中,我嘗試引用eshop項目而沒有任何結果。在Java Build Path的JPA項目中,我還通過Add Class Folder添加了eshop項目的類文件夾。也沒有任何結果。我花了幾個小時來檢查這是爲什麼發生。任何人都可以給我一個清晰的指導如何解決這個問題?我正在使用Weblogic 11gR1(10.3.3)。錯誤是:

java.lang.NoClassDefFoundError: model/ProductModelDAOImplat eshop.Servlet.doPost(Servlet.java:110) 
at eshop.Servlet.doGet(Servlet.java:57) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) 
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) 
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) 
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:183) 
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3686) 
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650) 
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) 
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2268) 
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174) 
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446) 
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201) 
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173) 

回答

0

這似乎是一個包的問題。我通過給jpa包名eshop解決了這個問題。