在使用 Mirage 2 构建 DSpace 5.3 时,无法通过 Spring 禁用 Google Analytics 以解决 DS-2718(失败的 GA 连接阻止文件下载)

Unable to disable Google Analytics via Spring to address DS-2718 (failed GA connections prevent file downloads) when building DSpace 5.3 with Mirage 2

我正在全新安装库存 DSpace 5.3(Windows Server 2012、Tomcat 8.0、Maven 3.2.5、Ant 1.9.6)。此特定实例将是一个未启用 Google 分析的暗存档;我们目前没有 GA 帐户或分析密钥,尽管我们计划最终为一个单独的 public 面向实例注册一个。

根据 JIRA ticket DS-2718 中描述的问题,当我尝试下载比特流时,DSpace 在 dspace.log 中挂起并显示以下消息:

2015-10-20 09:52:02,324 INFO org.apache.http.impl.execchain.RetryExec @ I/O exception (java.net.SocketException) caught when processing request to {s}->https://www.google-analytics.com:443: Network is unreachable: connect

2015-10-20 09:52:02,324 INFO org.apache.http.impl.execchain.RetryExec @ Retrying request to {s}->https://www.google-analytics.com:443

由于我们不会在此实例上使用 GA,因此在 Spring 中禁用它是一个很好的解决方法,直到问题得到解决。按照说明,我注释掉了 dspace-5.3-src-release\dspace-xmlui\src\main\webapp\WEB-INF\spring\applicationContext.xml 中的 Google Analytics 条目,禁用了 Tomcat 并重建了 DSpace。最初的尝试 运行 mvn package -Dmirage2.on=true 仍然产生了问题,所以我尝试了 "ground up" 重建:

cd d:\dspace-5.3-src-release\dspace
mvn clean package -U -Dmirage2.on=true
[successful build]
cd d:\dspace-5.3-src-release\dspace\target\dspace-installer
ant update
[successful update]
[copy webapps to Tomcat 8.0\webapps and start Tomcat]

但是,即使在重建之后,我仍然遇到相同的错误,在 dspace.log 中出现相同的 java.net.SocketException。

不确定为什么这不起作用。我是否错过了重建过程中的某个步骤或设置,以至于未应用对 applicationContext.xml 的更改?

FWIW,我尝试在 dspace-5 中搜索 "google"。3-src-release\dspace-xmlui-mirage2 看看这是否可能是 Mirage 2 的问题,但我没有看到任何看起来相关的东西。

这不是您仍然看到 SocketException 的原因的答案,但您所描述问题的真正解决方法是从 dspace-services/src/main/resources/config/dspace-defaults.cfg 中删除默认的 GA 密钥,请参阅 https://github.com/DSpace/DSpace/commit/5b84fef1ad789443d06c338558a92f854b20c8ef.你尝试过这样做吗?

我在 [dspace-src][dspace-src]\dspace 中 运行 mvn clean -Dmirage2.on=true 后问题自行解决。我猜这个问题是由于某人 运行 从错误目录构建的 Maven 而引起的。

我还按照建议从 dspace-defaults.cfg 中删除了默认密钥。现在一切正常。