繁体   English   中英

Eclipse-CVS中的ClassNotFoundException

[英]ClassNotFoundException in Eclipse-CVS

我命名的Liferay工程Project A依赖于从CVS repossitory另一个项目命名为Project B

每次我在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)

问题在于,项目B中的类在编译期间可访问,但在运行时无法访问。 要使此工作正常,您可以采用以下几种方法:

  1. Simpy:将两个项目放到一个项目中。 这是最简单的方法,您可以在一个项目中放置多个portlet和钩子。 一个类加载器将比您加载的所有类都要多。

  2. 如果需要共享类,则将由多个项目加载-创建一个仅包含Java类的项目(不包含portlet.xml等门户配置)。 将此共享项目导出到jar文件,然后将jar文件放在docroot/WEB-INF/lib文件夹中的其他项目中(例如Project A)。 如果共享类具有共享状态,则将jar文件唯一地放置到tomcat共享文件夹中,例如tomcat/lib/ext/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM