背景
我们正在使用Alfresco取代SharePoint。主要用途是文档共享和管理。
我在Windows Server 2008 R2上使用MySQL全新安装了Alfresco Community 4.0。客户端是安装了Microsoft Office 2010的Windows 7。使用Chrome和最新的IE访问Alfresco。两种浏览器都工作得很好。客户端安装了Web文件夹更新(KB907306)以及注册表集,以允许SSL和非SSL共享的基本身份验证仅用于测试目的。真实场景只需要SSL。
问题
开箱即用(在客户端更新后),Microsoft Office集成仅在没有HTTPS的情况下运行。我们要求它始终使用HTTPS运行。 Alfresco文档包含有关如何设置SharePoint协议支持和HTTPS的说明。问题是,由于Alfresco最终崩溃,它将无法工作。它只显示错误页面并在Tomcat日志中生成数百行(主要是堆栈跟踪)。大多数例外来自Lucene和Quartz,并且确定哪些错误是相关的有些困难。当我禁用Alfresco文档中描述的更改时,但仍会在日志中生成错误。
那么,问题是如何配置Alfresco在线编辑以通过HTTPS与Microsoft Office协同工作?
我得到的例外是:
SEVERE: Servlet.service() for servlet Spring Surf Dispatcher Servlet threw exception java.lang.nullPointerException
更新
似乎Alfresco Explorer Web客户端启动但从一开始它就一直在崩溃任何动作。已经完成了干净安装,而共享Web客户端工作正常。现在按照官方指示,Share不会使用HTTPS。
启动实例时的堆栈跟踪。
java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:559)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.<init>(SSLSocketImpl.java:401)
at com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl.createSocket(SSLSocketFactoryImpl.java:123)
at org.alfresco.encryption.ssl.AuthSSLProtocolSocketFactory.createSocket(AuthSSLProtocolSocketFactory.java:168)
at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
at org.alfresco.httpclient.AbstractHttpClient.executeMethod(AbstractHttpClient.java:110)
at org.alfresco.httpclient.AbstractHttpClient.sendRemoteRequest(AbstractHttpClient.java:86)
at org.alfresco.httpclient.HttpClientFactory$HttpsClient.sendRequest(HttpClientFactory.java:307)
at org.alfresco.solr.client.SOLRAPIClient.getModelsDiff(SOLRAPIClient.java:1008)
at org.alfresco.solr.tracker.CoreTracker.trackModels(CoreTracker.java:1453)
at org.alfresco.solr.tracker.CoreTracker.trackRepository(CoreTracker.java:1126)
at org.alfresco.solr.tracker.CoreTracker.updateIndex(CoreTracker.java:483)
at org.alfresco.solr.tracker.CoreTrackerJob.execute(CoreTrackerJob.java:45)
at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:563)
尝试访问共享时的堆栈跟踪。也会多次收到以上内容。
SEVERE: Servlet.service() for servlet Spring Surf Dispatcher Servlet threw exception
java.lang.NullPointerException
at org.alfresco.web.site.EditionInterceptor.preHandle(EditionInterceptor.java:87)
at org.springframework.web.servlet.handler.WebRequestHandlerInterceptorAdapter.preHandle(WebRequestHandlerInterceptorAdapter.java:54)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:781)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
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.alfresco.web.site.servlet.MTAuthenticationFilter.doFilter(MTAuthenticationFilter.java:74)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.alfresco.web.site.servlet.SSOAuthenticationFilter.doFilter(SSOAuthenticationFilter.java:307)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
答案 0 :(得分:2)
要在Alfresco Community 4.0c和Microsoft Office之间启用HTTPS通信,我最终将Jetty设置为在标准7070端口上使用HTTPS。 Alfresco Share客户端也使用HTTPS与Web浏览器进行通信。但是,Alfresco存储库和Share,solr和其他组件之间的通信绝不能是HTTPS,因为Alfresco似乎失去连接并抛出一般错误页面。
按照官方说明,可以完成设置,但必须跳过一些步骤。所有其他都有效,但不要更改share-config-custom.xml。此外,alfresco-global.properties必须将Alfresco设置为标准端口,并将Share设置为HTTPS协议和端口。确保Web服务器域不是环回地址。
不知道这是一个错误或功能。至少它可以与Office 2010一起使用。