Alfresco Community 4.0通过https与Microsoft Office集成

Alfresco Community 4.0通过https与Microsoft Office集成,https,ms-office,alfresco,Https,Ms Office,Alfresco,背景 我们正在使用Alfresco替换SharePoint。主要用途是文档共享和管理 我在WindowsServer2008R2上使用MySQL重新安装了AlfrescoCommunity4.0。客户端是安装了Microsoft Office 2010的Windows 7。使用Chrome和最新IE访问Alfresco。两种浏览器都可以正常工作。客户端安装了Web文件夹更新(KB907306),并设置了注册表,以允许仅出于测试目的对SSL和非SSL共享进行基本身份验证。真正的场景只需要SSL 问

背景

我们正在使用Alfresco替换SharePoint。主要用途是文档共享和管理

我在WindowsServer2008R2上使用MySQL重新安装了AlfrescoCommunity4.0。客户端是安装了Microsoft Office 2010的Windows 7。使用Chrome和最新IE访问Alfresco。两种浏览器都可以正常工作。客户端安装了Web文件夹更新(KB907306),并设置了注册表,以允许仅出于测试目的对SSL和非SSL共享进行基本身份验证。真正的场景只需要SSL

问题

开箱即用(在客户端更新之后)Microsoft Office集成只在没有HTTPS的情况下工作。我们要求它始终使用HTTPS进行操作。Alfresco文档包含有关如何设置SharePoint协议支持和HTTPS的说明。问题是,它不会工作,因为露天最终崩溃。它将只显示错误页面,并在Tomcat日志中生成数百行(主要是堆栈跟踪)。大多数异常源于Lucene和Quartz,因此很难确定哪些错误是相关的。当我禁用文档中描述的更改时,Alfresco可以工作,但仍然会在日志中生成错误

因此,问题是如何配置Alfresco online edit以通过HTTPS与Microsoft Office协同工作

我得到的例外是:

SEVERE: Servlet.service() for servlet Spring Surf Dispatcher Servlet threw exception java.lang.nullPointerException
更新

Alfresco Explorer web客户端似乎启动了,但从一开始它就一直在对任何操作进行崩溃。在共享web客户端工作正常的情况下,也通过clean install完成了这项工作。现在,按照官方指示,共享将无法使用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)

为了在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设置为标准端口,将共享设置为HTTPS协议和端口。确保web服务器域不是环回地址


不知道这是一个bug还是一个特性。至少它可以与Office 2010配合使用。

我不认为Vti问题会引发冲浪异常,您是否可以发布一些stacktrace以显示哪里出了问题?很可能是文档中的某个步骤导致了问题。我认为可能是share-config-custom.xml中的端点设置。我将尝试获取一些堆栈跟踪,以澄清情况。第一个跟踪显示您已将Alfresco配置为通过SSL与SOLR对话,但在您配置的端口上没有任何侦听。我建议您尝试将所有内容恢复为常规HTTP,然后每次只为应用程序的一部分打开SSL。实际上,当浏览器、office等的所有通信都使用https时,所有内容似乎都正常工作,而其他所有内容都是基本HTTP。尚未调查Solr或其他可选功能,但核心应用程序、共享和SharePoint协议正在运行。所以,共享和存储库之间的https打破了这一切。为什么说7070是https的标准端口?不是443吗?我如何访问共享存储库中的“在线编辑”选项?可能还有帮助:
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)