Spring Boot WAR jolokia integration



根据Spring Boot 1.2.3参考文档。启用jolokia似乎很简单,只需添加以下Maven依赖项:

<dependency>
    <groupId>org.jolokia</groupId>
    <artifactId>jolokia-core</artifactId>
 </dependency>

虽然这对于打包为fat jar的Spring Boot应用程序有效,但当打包为WAR文件时,我无法使其工作。

根本原因似乎是:

Caused by: java.lang.ClassNotFoundException: org.json.simple.JSONAware

我正在使用STS用于开发目的,并部署到嵌入式枢纽tc服务器3.1。包含org.json.simple.JSONAware的依赖项(json-simple-1.1.1.jar)确实出现在Maven依赖项节点下,所以我不确定问题是什么。

所以当我在写这个问题时,我偶然发现了一个至少对我有用的解决方案:

我看了看有效的POM,发现了这个依赖声明:

      <dependency>
        <groupId>com.googlecode.json-simple</groupId>
        <artifactId>json-simple</artifactId>
        <version>1.1.1</version>
        <optional>true</optional>
      </dependency>
因此,由于没有更好的选择,我显式地声明了以下依赖项
<dependency>
    <groupId>com.googlecode.json-simple</groupId>
    <artifactId>json-simple</artifactId>
    <optional>false</optional>
  </dependency>

<optional>元素中添加false似乎是必要的。

现在我可以通过以下url访问jolokia:

http://<myurl>:<myport>/<appcontext>/jolokia

看1.4.4这个问题似乎已经修复了:

<dependency>
  <!-- Make json-simple non-optional. 
       It is marked optional in boot-dependencies, but required by jolokia-core.
       Without this fix it would be missing when used war-packaging. -->
  <groupId>com.googlecode.json-simple</groupId>
  <artifactId>json-simple</artifactId>
  <optional>false</optional>
</dependency>

然而,我在JBoss中看到了类似的问题。

相关内容

  • 没有找到相关文章

最新更新