根据Spring Boot 1.2.3 Reference Docs。 启用jolokia似乎就像添加以下Maven依赖项一样简单:
<dependency>
<groupId>org.jolokia</groupId>
<artifactId>jolokia-core</artifactId>
</dependency>
虽然这适用于打包为胖jar的Spring Boot应用程序,但在打包为WAR文件时,我无法使其正常工作。
根本原因似乎是:
Caused by: java.lang.ClassNotFoundException: org.json.simple.JSONAware
我将STS用于开发目的并部署到嵌入式关键tc Server 3.1。包含org.json.simple.JSONAware
的依赖项(json-simple-1.1.1.jar)确实出现在Maven依赖关系节点下,因此我不确定问题是什么。
答案 0 :(得分:1)
因此,当我撰写这个问题时,我偶然发现了一个至少似乎对我有用的解决方案:
我看了 effective 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>
将{strong> false 添加到<optional>
元素似乎是必要的。
现在我可以通过以下网址访问jolokia:
http://<myurl>:<myport>/<appcontext>/jolokia
答案 1 :(得分:1)
看看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看到了类似的问题。