2012-08-13 37 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/

相关问题