【问题标题】:Sonar 3.7 XML Profile XHTML Validation FailureSonar 3.7 XML 配置文件 XHTML 验证失败
【发布时间】:2014-01-03 00:41:03
【问题描述】:

我正在尝试将 Sonar Web 和 XML 质量配置文件分析添加到我稳定的 Java 配置文件分析套件中。 Sonar XML 质量配置文件分析无法完成 XHTML 验证。我怀疑问题是由于代理问题,验证引擎无法通过 Internet 访问 XML 架构。

错误:

[INFO] [11:48:07.587] Sensor XmlSourceImporter...
[INFO] [11:48:23.354] Sensor XmlSourceImporter done: 15767 ms
[INFO] [11:48:23.354] Sensor XmlSensor...
[INFO] [11:48:23.557] Validate Exit.xhtml with schema xhtml1-transitional
[ERROR] [11:48:44.542] Could not analyze the file D:\Jenkins_home\.jenkins\jobs\...\Exit.xhtml
org.sonar.api.utils.SonarException: java.net.ConnectException: Connection timed out: connect
    at org.sonar.plugins.xml.checks.XmlSchemaCheck.validate(XmlSchemaCheck.java:248) ~[na:na]
    at org.sonar.plugins.xml.checks.XmlSchemaCheck.validate(XmlSchemaCheck.java:227) ~[na:na]
    at org.sonar.plugins.xml.checks.XmlSchemaCheck.validate(XmlSchemaCheck.java:259) ~[na:na]
    at org.sonar.plugins.xml.XmlSensor.analyse(XmlSensor.java:69) ~[na:na]
    at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:72) [sonar-batch-3.7.1.jar:na]

配置:

  • Tomcat 7.0.11 与 Jenkins 1.509.3 和 Sonar 3.7.1 安装到 Windows Server 2003 上的 Tomcat 中。
  • 插件版本:Sonar XML 1.0 版、Jenkins Sonar 2.1 版、Jenkins Subversion 1.50。
  • Jenkins Maven 2.2.1 作业触发声纳分析。
  • 使用代理服务器保护所有 Web 访问(企业配置)。
  • Sonar 在 conf/sonar.properties 中配置了代理服务器属性(证明:能够访问 Sonar 更新中心 - 如果 Tomcat 代理交换机配置为允许以下代理访问)。
  • Tomcat Java 进程配置了空的 -Dhttp.proxyHost 和 -Dhttp.proxyPort 开关,以禁止从 Windows 传递代理设置。这是必需的,因此不会将代理信息传递给 Jenkins(如果从 Tomcat 传递代理开关,则 Jenkins Subversion 访问会失败)。

我认为我处于第 22 个问题,我需要 Tomcat 来抑制代理设置,以便 Jenkins Subversion 访问有效,但需要 Tomcat 代理设置才能进行 Sonar XML 分析。也许我需要放弃 Tomcat 以支持 Jenkins 和 Sonar 的独立安装?

我的代理设置分析是否正确和/或是否有其他 Sonar 配置可以尝试让 XHTML 验证正常工作?

【问题讨论】:

    标签: tomcat proxy jenkins xhtml sonarqube


    【解决方案1】:

    我通过将 Jenkins 使用的 Maven 安装配置为使用代理连接到网络来解决了这个问题。参考:http://maven.apache.org/guides/mini/guide-proxies.html。在 Maven 代理配置中,我在 <nonProxyHosts> 中添加了 Intranet URI (*.<corporate-domain-root>.*)。

    conf/sonar.properties 中的 Sonar 代理服务器属性不是必需的。

    所以现在,Jenkins 和 Sonar 是通过没有代理设置的 Tomcat 启动的(即空的 -Dhttp.proxyHost-Dhttp.proxyPort 开关)。当 Jenkins 作业通过 Maven 触发 Sonar 分析时,Maven 可以在进行 XML 模式验证检查时通过代理配置调用 Internet。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-19
      • 2017-01-10
      • 1970-01-01
      • 1970-01-01
      • 2019-06-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多