0

我有一个 Spring Boot 控制台应用程序,我通过 JMX 访问执行器端点。问题是返回的文本不是很漂亮,也不是 JSON。它看起来像这样:

{context=application, parent=null, beans=[{bean=helloWorldApplication, scope=singleton, type=com.surpreso.spring_skeleton.HelloWorldApplication, resource=null, dependencies=[helloWorldService]}, {bean=helloWorldService, scope=singleton, type=com.surpreso.spring_skeleton.HelloWorldService, resource=file [C:/src-tmp/spring-skeleton/target/classes/com/surpreso/spring_skeleton/HelloWorldService.class], dependencies=[]}, {bean=com.surpreso.spring_skeleton.DefaultConfig,  ...

将其转换为可读格式的最佳方法是什么?是否可以将 JMX 执行器配置为漂亮打印?是否可以将 JMX 执行器配置为使用 JSON?

有一个关于Spring Boot Actuator endpoints 的漂亮打印 JSON 输出的相关问题,但在这种情况下,我坚持使用 JMX,因为我没有 Web 应用程序。下一步我将尝试 CRaSH,但我很好奇是否可以将 JMX 执行器配置为更可用。

我正在使用 1.2.5 版的 Spring Boot。

更新: CRaSH 实现使用相同的格式,所以它不是一个解决方案。

更新 2:我在 1.3.0 中看到了这个关于“在所有 EndpointMBeans 中使用配置的 ObjectMapper,如果可用的话”的提交,但我不知道为漂亮的打印设置哪些属性。很近 ...

更新 3spring.jackson.serialization.indent_output=true通过 CRaSH 界面没有任何影响。我现在在 1.3.0.M2。

4

1 回答 1

2

您粘贴的输出有效的 json 文档。是什么让您认为它完全无效?

如果您想漂亮地打印格式,这实际上取决于您访问 JMX 端点的方式。例如,如果您通过 JConsole 访问它,我不确定漂亮的打印输出对于大型文档是否具有可读性。如果您手动访问 JMX 端点,那么您可以非常轻松地读取字符串并漂亮地打印输出(JSONObject有一个toString方法可以获取您想要在文档上应用的缩进)。

关于 CRaSH,这真的无关紧要。执行器端点位于 CRaSH 之外,不使用其任何功能。

编辑:我的错误,这不是有效的 JSON,我在 Spring Boot 问题跟踪器中创建了#3658 。

于 2015-08-03T07:13:03.443 回答