gpt4 book ai didi

java - Camel复杂类型到字符串类型转换器错误

转载 作者:太空宇宙 更新时间:2023-11-04 12:17:36 25 4
gpt4 key购买 nike

我正在使用 Camel 和 Spring Boot。在基本上记录消息正文的服务路由实现期间,我看到了如下错误。

No converter found capable of converting from type [com.example.Book] to type [java.lang.String]

我的路线是:

from(REST_ENDPOINT_URI)
.log("${headers}")
.log("${body}")

我在日志正文行中收到错误。

我的问题是预期的行为?为什么 Camel 不直接调用 Book 对象的 toString 方法呢?而且,如果这是预期的行为,那么我需要为每个新的复杂类型提供一个字符串转换器?

最佳答案

您可以创建一个可运行的示例来重现该问题吗?这绝对是 Camel 通过调用 toString 来处理的场景。

例如,您可以使用以下方法进行测试:

@Component
public class DemoRouteBuilder extends RouteBuilder {


@Override
public void configure() throws Exception {
from("timer:sender?delay=5s&period=3s")
.setBody(constant(new Book("Lord of the Rings", "J.R.R. Tolkien")))
.log("${body}!");
}

public static class Book {
private final String title;
private final String author;

public Book(String title, String author) {
this.title = title;
this.author = author;
}

@Override
public String toString() {
return "Book{" +
"title='" + title + '\'' +
", author='" + author + '\'' +
'}';
}
}
}

这会产生以下输出:

2016-08-30 11:57:49.802 INFO 8778 --- [ timer://sender] route1 : Book{title='Lord of the Rings', author='J.R.R. Tolkien'}!

2016-08-30 11:57:52.792 INFO 8778 --- [ timer://sender] route1 : Book{title='Lord of the Rings', author='J.R.R. Tolkien'}!

2016-08-30 11:57:55.795 INFO 8778 --- [ timer://sender] route1 : Book{title='Lord of the Rings', author='J.R.R. Tolkien'}!

关于java - Camel复杂类型到字符串类型转换器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39215185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com