2012-08-13 36 views
0

我Liferay的項目命名爲Project A依賴從名爲Project B CVS repossitory另一個項目,的ClassNotFoundException在Eclipse的CVS

我得到每次使用的Project B這是從CVS項目中的類此時間ClassNotFoundException。我不明白爲什麼,我還將Project B包含在我的項目構建路徑中,但不起作用。

請大家幫幫我,我該如何使用從庫項目中的類?這裏是exceptionStack Trace時拋出:

05:28:44,714 ERROR [jsp:154] java.lang.ClassNotFoundException: com.fluxion.profileservice.DAOImpl.EnrolledCustomerDAOImpl 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491) 
    at com.fluxion.myaccounts.service.EnrolledCustomerService.getCustomerIDList(EnrolledCustomerService.java:10) 
    at com.fluxion.myaccounts.portlet.OrderTaggingPortlet.doView(OrderTaggingPortlet.java:43) 
    at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:328) 
    at javax.portlet.GenericPortlet.render(GenericPortlet.java:233) 
    at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:101) 
    at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:64) 
    at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:92) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) 
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551) 
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488) 
    at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:638) 
    at com.liferay.portlet.InvokerPortletImpl.invokeRender(InvokerPortletImpl.java:723) 
    at com.liferay.portlet.InvokerPortletImpl.render(InvokerPortletImpl.java:425) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 

05:28:49,669 ERROR [jsp:154] java.lang.NoClassDefFoundError: com/fluxion/profileservice/DAOImpl/EnrolledCustomerDAOImpl 
    at com.fluxion.myaccounts.service.EnrolledCustomerService.getCustomerIDList(EnrolledCustomerService.java:10) 
    at com.fluxion.myaccounts.portlet.OrderTaggingPortlet.doView(OrderTaggingPortlet.java:43) 
    at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:328) 
    at javax.portlet.GenericPortlet.render(GenericPortlet.java:233) 
    at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:101) 
    at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:64) 
    at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:92) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) 
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551) 
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488) 
    at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:638) 
    at com.liferay.portlet.InvokerPortletImpl.invokeRender(InvokerPortletImpl.java:723) 
    at com.liferay.portlet.InvokerPortletImpl.render(InvokerPortletImpl.java:425) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 

Loading file:/C:/liferay-portal-tomcat-6.0.6-20110225/liferay-portal-6.0.6/tomcat-6.0.29/webapps/chat-portlet/WEB-INF/classes/portlet.properties 
05:28:49,777 INFO [PluginPackageUtil:1230] Checking for available updates 
05:28:49,780 INFO [PluginPackageUtil:1274] Finished checking for available updates in 2 ms 
05:32:02,296 ERROR [jsp:154] java.lang.NoClassDefFoundError: com/fluxion/profileservice/DAOImpl/EnrolledCustomerDAOImpl 
    at com.fluxion.myaccounts.service.EnrolledCustomerService.getCustomerIDList(EnrolledCustomerService.java:10) 
    at com.fluxion.myaccounts.portlet.OrderTaggingPortlet.doView(OrderTaggingPortlet.java:43) 
    at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:328) 
    at javax.portlet.GenericPortlet.render(GenericPortlet.java:233) 
    at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:101) 
    at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:64) 
    at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:92) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) 
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551) 
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488) 
    at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:638) 
    at com.liferay.portlet.InvokerPortletImpl.invokeRender(InvokerPortletImpl.java:723) 
    at com.liferay.portlet.InvokerPortletImpl.render(InvokerPortletImpl.java:425) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
+0

您是否在eclipse中檢出了項目A和B?如果您也可以在兩個項目中瞭解哪些軟件包被視爲「源代碼」軟件包,那將是非常好的。謝謝。 – 2012-08-13 07:08:29

回答

0

的問題是,從項目B中的類編譯但不是在運行時期間訪問。爲了得到這個工作,你有幾種方法:

  1. Simpy:將兩個項目合併到一個項目。這是最簡單的方法,您可以將多個portlet和鉤子放在一個項目中。比你所有的課程將由一個類加載器加載。

  2. 如果需要共享類,那將是負載由幾個項目 - 創建一個只包含Java類(如portlet.xml中沒有等門戶網站配置)的項目。導出此共享項目JAR文件,並把在其他項目的jar文件(如您的項目A)在docroot/WEB-INF/lib文件夾中。如果共享類具有共享狀態,則將jar文件唯一地存放到tomcat共享文件夾中,如tomcat/lib/ext/

相關問題