我是阿帕奇骆驼的新手。我正在使用带有Apache Camel和Spring Boot集成的REST API。我已完成获取请求,它按预期工作。但是,在使用 POST 调用发布数据时,我遇到了一个问题。
我在下面的链接中看到了类似的错误。但是,这对我没有帮助。NoTypeConversionAvailableException:没有可从类型转换的类型转换器:
我已经尝试了Stackoverflow,youtube和其他网站中可用的几种解决方案。但是,没有运气。你能帮我解决问题吗?
错误描述:
org . Apache . camel . invalidpayloadexception:没有类型为byte[]的正文,但有值:Bank [id=1,name=TEST,location=Bangalore]的类型:com . ta . common . bean . Bank on:Message[ID-xdns 01271-1534835668677-10-2]。原因:没有类型转换器可用于将type: com.ta.common.bean.Bank转换为所需的类型:byte[],值为Bank [id=1,name=TEST,location=Bangalore]。交流[ID-xdns 01271-1534835668677-10-1]。导致原因:[org . Apache . camel . notypeconvionavailableexception-没有可用于从type: com.ta.common.bean.Bank转换为所需类型的类型转换器:byte[]值Bank [id=1,name=TEST, location = Bangalore]]at org . Apache . camel . impl . message support . getmandatorybody(message support . Java:117)at org . Apache . camel . component . netty 4 . http . defaultnetyhttpbinding . tonettyrequest(defaultnetyhttpbinding . Java:488)at org . Apache . camel . component 4 . http . nettyhttpproducer . getrequest body(netyhttproducer . Java:65)at org . Apache . ...29更
骆驼路由逻辑如下,
restConfiguration().component("netty4-http").bindingMode(RestBindingMode.json).host("localhost").port(8000);
rest("/api").consumes("application/json").post("/addbank").type(Bank.class).to("direct:addbank");
from("direct:addbank").log("request body :
${body}").to("netty4-http:http://localhost:8181/bank/add?bridgeEndpoint=true").throwException(new
RuntimeException()).to("direct:cancelAdding");
from("direct:cancelAdding").log("Cancelled adding bank details");
控制器逻辑为:
@RestController
@RequestMapping(path="/bank")
public class BankController {
List<Bank> bankList = new ArrayList<>();
@PostMapping(path="/add",consumes="application/json")
public List<Bank> addBank(@RequestBody @Valid Bank bank) {
bankList.add(bank);
return bankList;
}
}
Bank.java:
private int id;
private String name;
private String location;
//Getter & Setter methods
我无法用上面的代码准确地再现错误。当我尝试上述代码时,这是我得到的例外。
组织pache.camel.processor.binding。BindingException:无法绑定到json,因为消息体与json不兼容。交换[ID-DESKTOP-OS0TDG5-1534851950401-0-1]
修复方法是将 rest 配置从
restConfiguration().component("netty4-http").host("localhost").bindingMode(RestBindingMode.json)....;
到
restConfiguration().component("netty4-http").host("localhost").bindingMode(RestBindingMode.auto)....;
或者可以完全省略bindingmode。
我首先有一个多部分文件,我想把它发送到camel管道,并用原始名称保存这个文件。 我的代码: 另一方面,我有: from(“seda:rest_upload”).convertBodyTo(File.class).to(“file://rest_files"); 我也尝试注册转换器: 当我执行我的代码时,我看到下面的stacktrace: 如何解决这个问题?
我用camel定义了一个处理器,它允许我使用计时器生成一个jaxb-javabean,并将pojo写入xml文件。但当我启动应用程序时,我遇到了以下错误: 08:09:00 WARN[or.ap.ca.co.ti.时间消费者](骆驼(骆驼-1)线程#2-定时器://生成发票)错误处理交换。交换[20E715FDB7EFE19-0000000000000000]。由:[java.io.IOEx 我的
我们有一个使用带有Postgres数据库的Spring boot1.3运行的应用程序。自定义用户类型是为数据库中的Json类型定义的。遵循并实现UserType以使用ObjectMapper返回Pojo。它工作得非常好。但是现在使用Spring boot1.4,我们得到了这个异常。 自定义用户类型中的代码片段。 我可以看到,找到了来自数据库的响应,objectmapper也对其进行了转换。返回时抛
我知道这是另一个类似的问题,但我自己无法回答,这就是我写信给你寻求帮助的原因。 我尝试创建自己的@Query,并在两种情况下返回一个转换错误。我的猜测是服务有问题,但这是我的知识结束。 下面是我的代码: > 主实体 2.第二种模式 3.第三种模式 存储库 @Repository public interface UserRepository extends jparepository { } 服务
在下面来自的语法中,泛型类型参数在实例化原始类型数组后用于类型转换,
问题内容: 我有一个代码段: 为什么不自动类型转换为while ? 问题答案: 因为是,并且具有更大的范围。因此,将其分配给可能会导致数据丢失。 是一个常数,而编译时间保证在的范围内。