1

在我的 spring-boot 应用程序(在类路径中使用 spring-integration),我无法重置任何指标计数器。它抛出 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 的一个错误,所以有没有办法禁用它?

4

1 回答 1

1

有些东西正在向订阅的频道发送带有String有效负载 ( ) 的消息。它只期望看到或有效载荷。"delete"MetricWriterMessageHandlerDeltaMetric

如果您打开调试日志记录,您应该能够弄清楚是什么将虚假消息发送到通道。

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

于 2015-07-01T13:15:20.457 回答