当前位置: 首页 > 知识库问答 >
问题:

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

孟璞
2023-03-14

我将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方法。如果这是预期的行为,那么我需要一个字符串转换器来处理每个新的复杂类型?

共有1个答案

别兴国
2023-03-14

您能否创建一个重现问题的可运行示例?这绝对是 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]route 1:Book { title = '指环王',author='J.R.R .托尔金' }!

2016-08-30 11:57:52.792 INFO 8778-[timer://sender]route 1:Book { title = '指环王',author='J.R.R .托尔金' }!

2016-08-30 11:57:55.795 信息 8778 --- [ timer://sender] 路线1 : 书{标题='指环王',作者='J.R.R. 托尔金'}!

 类似资料:
  • 2.3.4 字符串类型与其他类型的转换 应用程序中有时需要将字符串类型的数据转换成其他数据类型,或者相反。下面介绍Python 中如何实现这些功能。 首先看函数 eval()。eval 函数接收一个字符串,并将该字符串解释成 Python 表达式 进行求值,最终得到特定类型的结果值;如果字符串无法解释成合法的 Python 表达式则报 错(如语法错误、未定义变量错误等)。例如: >>> eval(

  • 问题内容: 最近,我试图用Python存储和读取文件中的信息,但遇到一个小问题:我想从文本文件中读取类型信息。从字符串到int或float的类型转换非常有效,但是从字符串到类型的类型转换似乎是另一个问题。自然,我尝试过这样的事情: 但是,它并不用作强制类型转换,而是用作查找变量类型的机制,实际上它在这里。 我找到了一种解决方法: 但我一般尽量避免类似的功能/报表或在那里我可以。所以我的问题是:是否

  • 元组(Tuple) 在别的语言里,你可能听过元组这个词,它表示一个大小、类型固定的有序数据组。在 Rust 中,情况并没有什么本质上的不同。不过 Rust 为我们提供了一系列简单便利的语法来让我们能更好的使用他。 let y = (2, "hello world"); let x: (i32, &str) = (3, "world hello"); // 然后呢,你能用很简单的方式去访问他们: /

  • 我得到这个错误列表是不是一个类型的子类型字符串在类型铸造,目前我正在发送的形式数据在体内,因为服务器不接受任何原始请求 //服务器响应,表示服务器成功接收并返回状态200

  • 我的一个数据帧(spark.sql)有这个模式。 我需要将其保存到CSV文件,但不使用任何扁平化,以以下格式分解。 我直接使用了命令 ,这符合我的目的,但我需要一个更好的方法。我正在使用派斯帕克

  • 本文向大家介绍jquery把int类型转换成字符串类型的方法,包括了jquery把int类型转换成字符串类型的方法的使用技巧和注意事项,需要的朋友参考一下 jQuery中把获取的number类型数据转换成字符串类型 以上就是小编为大家带来的jquery把int类型转换成字符串类型的方法全部内容了,希望大家多多支持呐喊教程~