Spring 集成在类路径中时无法重置指标计数器

Unable to reset Metrics Counter when Spring Integration is in the classpath

在我的 spring-boot 应用程序(类路径中有 spring-集成)中,我无法重置任何指标计数器。 它抛出 ClassCastException :

Exception in thread "metricsExecutor-1" org.springframework.messaging.MessageDeliveryException: Failed to handle GenericMessage [payload=delete, headers={timestamp=1435738406974, id=4c9aaac0-8bf1-aac1-d9c9-6f8d50f7801b, metricName=counter.test.toto}] to org.springframework.messaging.support.ExecutorSubscribableChannel$SendTask@2e9f560 in org.springframework.boot.actuate.metrics.writer.MetricWriterMessageHandler@4dec731e; nested exception is java.lang.ClassCastException: java.lang.String cannot be cast to org.springframework.boot.actuate.metrics.Metric
    at org.springframework.messaging.support.ExecutorSubscribableChannel$SendTask.run(ExecutorSubscribableChannel.java:144)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to org.springframework.boot.actuate.metrics.Metric
    at org.springframework.boot.actuate.metrics.writer.MetricWriterMessageHandler.handleMessage(MetricWriterMessageHandler.java:46)
    at org.springframework.messaging.support.ExecutorSubscribableChannel$SendTask.run(ExecutorSubscribableChannel.java:135)
    ... 3 more

我认为这是 messageChannel 的错误,有没有办法禁用它?

正在向 MetricWriterMessageHandler 订阅的频道发送带有 String 负载 ("delete") 的消息。它只希望看到 DeltaMetric 有效载荷。

如果您打开 DEBUG 日志记录,您应该能够找出是什么向频道发送虚假消息。

如果您确定它是引导代码,请在 GitHub 中打开一个针对引导的问题。