从 3.4.d(社区)升级到 4.0.d(社区)后,Alfresco Explorer 出现错误

Posted

技术标签:

【中文标题】从 3.4.d(社区)升级到 4.0.d(社区)后,Alfresco Explorer 出现错误【英文标题】:Alfresco Explorer giving error after upgrade from 3.4.d (community) to 4.0.d(community) 【发布时间】:2015-05-05 11:16:32 【问题描述】:

我从 Alfresco 3.4.d(社区)升级到了 Alfresco 4.0.d(社区)。升级过程没有显示任何错误。

CIFS 访问和所有 API、webscript 等都可以正常工作。共享应用程序也有效。但是当我尝试访问 /alfresco 网络应用程序(资源管理器)时,我得到了错误: java.lang.ClassNotFoundException - 来自 BaseClassLoader 的 org.apache.opencmis.browser.BrowseServlet

我发现这个类存在于 opencmis-test-browser 库的早期版本(3.4.d)中。 4.0.d 版本中不存在此库。

谁能帮我解决这个问题?为什么我会收到此错误?知道如何解决吗?

堆栈跟踪:

2015-03-04 11:40:10,290 INFO [STDOUT] 11:40:10,288 错误 [shared_impl.util.ClassUtils] 类 org.apache.opencmis.browser.BrowseServlet 未找到
java.lang.ClassNotFoundException:来自 BaseClassLoader@7b888da5vfszip:/opt/jboss-eap-5.1/server/default/deploy/alfresco.war/ 的 org.apache.opencmis.browser.BrowseServlet
        在 org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:477)
        在 java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        在 java.lang.Class.forName0(本机方法)
        在 java.lang.Class.forName(Class.java:247)
        在 org.apache.myfaces.shared_impl.util.ClassUtils.classForName(ClassUtils.java:139)
        在 org.apache.myfaces.shared_impl.util.ClassUtils.simpleClassForName(ClassUtils.java:158)
        在 org.apache.myfaces.shared_impl.webapp.webxml.WebXml.getFacesServletMappings(WebXml.java:129)
        在 org.apache.myfaces.application.jsp.JspViewHandlerImpl.getServletMapping(JspViewHandlerImpl.java:381)
        在 org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:222)
        在 org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
        在 org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:146)
        在 javax.faces.webapp.FacesServlet.service(FacesServlet.java:147)
        在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        在 org.alfresco.repo.web.filter.beans.NullFilter.doFilter(NullFilter.java:68)
        在 sun.reflect.GeneratedMethodAccessor790.invoke(未知来源)
        在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        在 java.lang.reflect.Method.invoke(Method.java:597)
        在 org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:103)
        在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        在 org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
        在 $Proxy458.doFilter(未知来源)
        在 org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:82)
        在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        在 org.alfresco.repo.webdav.auth.BaseSSOAuthenticationFilter.doFilter(BaseSSOAuthenticationFilter.java:136)
        在 sun.reflect.GeneratedMethodAccessor790.invoke(未知来源)
        在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        在 java.lang.reflect.Method.invoke(Method.java:597)
        在 org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:103)
        在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        在 org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
        在 $Proxy458.doFilter(未知来源)
        在 org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:82)
        在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        在 org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:58)
        在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        在 org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
        在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
        在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        在 org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:183)
        在 org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95)
        在 org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
        在 org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
        在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        在 org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
        在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
        在 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
        在 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
        在 org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:451)
        在 java.lang.Thread.run(Thread.java:662)
2015-03-04 11:40:10,293 INFO [STDOUT] 11:40:10,292 错误 [faces.webapp._ErrorPageWriter] 发生异常
javax.faces.FacesException
        在 org.apache.myfaces.shared_impl.util.ClassUtils.simpleClassForName(ClassUtils.java:163)
        在 org.apache.myfaces.shared_impl.webapp.webxml.WebXml.getFacesServletMappings(WebXml.java:129)
        在 org.apache.myfaces.application.jsp.JspViewHandlerImpl.getServletMapping(JspViewHandlerImpl.java:381)
        在 org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:222)
        在 org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
        在 org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:146)
        在 javax.faces.webapp.FacesServlet.service(FacesServlet.java:147)
        在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        在 org.alfresco.repo.web.filter.beans.NullFilter.doFilter(NullFilter.java:68)
        在 sun.reflect.GeneratedMethodAccessor790.invoke(未知来源)
        在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        在 java.lang.reflect.Method.invoke(Method.java:597)
        在 org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:103)
        在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        在 org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
        在 $Proxy458.doFilter(未知来源)
        在 org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:82)
        在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        在 org.alfresco.repo.webdav.auth.BaseSSOAuthenticationFilter.doFilter(BaseSSOAuthenticationFilter.java:136)
        在 sun.reflect.GeneratedMethodAccessor790.invoke(未知来源)
        在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        在 java.lang.reflect.Method.invoke(Method.java:597)
        在 org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:103)
        在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        在 org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
        在 $Proxy458.doFilter(未知来源)
        在 org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:82)
        在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        在 org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:58)
        在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        在 org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
        在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
        在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        在 org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:183)
        在 org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95)
        在 org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
        在 org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
        在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        在 org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
        在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
        在 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
        在 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
        在 org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:451)
        在 java.lang.Thread.run(Thread.java:662)
引起:java.lang.ClassNotFoundException: org.apache.opencmis.browser.BrowseServlet from BaseClassLoader@7b888da5vfszip:/opt/jboss-eap-5.1/server/default/deploy/alfresco.war/
        在 org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:477)
        在 java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        在 java.lang.Class.forName0(本机方法)
        在 java.lang.Class.forName(Class.java:247)
        在 org.apache.myfaces.shared_impl.util.ClassUtils.classForName(ClassUtils.java:139)
        在 org.apache.myfaces.shared_impl.util.ClassUtils.simpleClassForName(ClassUtils.java:158)
        ... 51 更多

感谢任何提示。

【问题讨论】:

【参考方案1】:

发现问题——类包在4.0.d中发生了变化。 它已从 org.apache.opencmis.browser.BrowseServlet 更改为 org.apache.chemistry.opencmis.browser.BrowseServlet

在 web.xml 中更改此项已解决问题。

【讨论】:

以上是关于从 3.4.d(社区)升级到 4.0.d(社区)后,Alfresco Explorer 出现错误的主要内容,如果未能解决你的问题,请参考以下文章

CDH 社区版从 5.7 滚动升级到 5.13

汽车之家社区从传统商业数据库到开源分布式数据库的架构变迁

MySQL社区版升级到Percona Server

史上最全phpwind版本,从phpwind1.0到phpwind8所有版本和升级补丁包

从“少林寺”毕业后,我当上了开源社区“区长”

从“少林寺”毕业后,我当上了开源社区“区长”