Pasquale Congiusti created CAMEL-22571:
------------------------------------------
Summary: [camel-beanio] No type converter for encoding
Key: CAMEL-22571
URL: https://issues.apache.org/jira/browse/CAMEL-22571
Project: Camel
Issue Type: Bug
Reporter: Pasquale Congiusti
Reproducer:
{code:java}
- from:
uri: "direct:unmarshal"
steps:
- unmarshal:
beanio:
mapping: "mappings.xml"
streamName: "personStream"
encoding: UTF-8
- split:
simple: "${body}"
steps:
- to: "mock:beanio-unmarshal"
- from:
uri: "direct:marshal"
steps:
- marshal:
beanio:
mapping: "mappings.xml"
streamName: "personStream"
- to: "mock:beanio-marshal"
{code}
With mapping.xml file
{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<beanio xmlns="http://www.beanio.org/2012/03"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.beanio.org/2012/03
http://www.beanio.org/2012/03/mapping.xsd">
<stream name="personStream" format="delimited" strict="true">
<record name="person" class="Person">
<field name="firstName" />
<field name="lastName" />
</record>
</stream>
</beanio>
{code}
and Pojo
{code:java}
public class Person {
private String firstName;
private String lastName;
// Getters and Setters
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
@Override
public String toString() {
return firstName + " " + lastName;
}
}
{code}
Run via
{code}
camel run test.yaml mappings.xml Person.java
{code}
Result:
{code}
2025-10-20 09:25:50.810 INFO 23525 --- [ main]
he.camel.cli.connector.LocalCliConnector : Camel JBang CLI enabled
org.apache.camel.FailedToCreateRouteException: Failed to create route: route1
at: >>> Unmarshal[org.apache.camel.model.dataformat.BeanioDataFormat@52354202]
<<< in route: Route(route1)[From[direct:unmarshal] -> [Unmarshal[org.apach...
because: Error binding property (encoding=UTF-8) with name: encoding on bean:
org.apache.camel.dataformat.beanio.BeanIODataFormat@6b1321b7 with value: UTF-8
at
org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:246)
at
org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:88)
at
org.apache.camel.impl.DefaultModelReifierFactory.createRoute(DefaultModelReifierFactory.java:49)
at
org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:765)
at
org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:626)
at
org.apache.camel.impl.engine.AbstractCamelContext.doInit(AbstractCamelContext.java:2631)
at
org.apache.camel.support.service.BaseService.init(BaseService.java:85)
at
org.apache.camel.impl.engine.AbstractCamelContext.init(AbstractCamelContext.java:2249)
at
org.apache.camel.support.service.BaseService.start(BaseService.java:115)
at
org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2268)
at
org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:211)
at org.apache.camel.main.KameletMain.doStart(KameletMain.java:401)
at
org.apache.camel.support.service.BaseService.start(BaseService.java:123)
at
org.apache.camel.dsl.jbang.core.commands.Run.runKameletMain(Run.java:1657)
at org.apache.camel.dsl.jbang.core.commands.Run.run(Run.java:1007)
at org.apache.camel.dsl.jbang.core.commands.Run.doCall(Run.java:370)
at
org.apache.camel.dsl.jbang.core.commands.CamelCommand.call(CamelCommand.java:71)
at
org.apache.camel.dsl.jbang.core.commands.CamelCommand.call(CamelCommand.java:37)
at picocli.CommandLine.executeUserObject(CommandLine.java:2031)
at picocli.CommandLine.access$1500(CommandLine.java:148)
at
picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2469)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2461)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2423)
at
picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277)
at picocli.CommandLine$RunLast.execute(CommandLine.java:2425)
at picocli.CommandLine.execute(CommandLine.java:2174)
at
org.apache.camel.dsl.jbang.core.commands.CamelJBangMain.run(CamelJBangMain.java:205)
at
org.apache.camel.dsl.jbang.core.commands.CamelJBangMain.run(CamelJBangMain.java:72)
at main.CamelJBang.main(CamelJBang.java:36)
Caused by: org.apache.camel.PropertyBindingException: Error binding property
(encoding=UTF-8) with name: encoding on bean:
org.apache.camel.dataformat.beanio.BeanIODataFormat@6b1321b7 with value: UTF-8
at
org.apache.camel.support.PropertyBindingSupport.setSimplePropertyViaConfigurer(PropertyBindingSupport.java:808)
at
org.apache.camel.support.PropertyBindingSupport.doSetPropertyValue(PropertyBindingSupport.java:563)
at
org.apache.camel.support.PropertyBindingSupport.doBuildPropertyOgnlPath(PropertyBindingSupport.java:420)
at
org.apache.camel.support.PropertyBindingSupport.doBindProperties(PropertyBindingSupport.java:300)
at
org.apache.camel.support.PropertyBindingSupport$Builder.bind(PropertyBindingSupport.java:1939)
at
org.apache.camel.reifier.dataformat.DataFormatReifier.configureDataFormat(DataFormatReifier.java:314)
at
org.apache.camel.reifier.dataformat.DataFormatReifier.createDataFormat(DataFormatReifier.java:248)
at
org.apache.camel.reifier.dataformat.DataFormatReifier.getDataFormat(DataFormatReifier.java:113)
at
org.apache.camel.reifier.dataformat.DataFormatReifier.getDataFormat(DataFormatReifier.java:73)
at
org.apache.camel.reifier.UnmarshalReifier.createProcessor(UnmarshalReifier.java:35)
at
org.apache.camel.reifier.ProcessorReifier.makeProcessor(ProcessorReifier.java:843)
at
org.apache.camel.reifier.ProcessorReifier.addRoutes(ProcessorReifier.java:616)
at
org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:238)
... 28 more
Caused by: org.apache.camel.RuntimeCamelException:
org.apache.camel.NoTypeConversionAvailableException: No type converter
available to convert from type: java.lang.String to the required type:
java.nio.charset.Charset
at
org.apache.camel.RuntimeCamelException.wrapRuntimeCamelException(RuntimeCamelException.java:53)
at
org.apache.camel.support.component.PropertyConfigurerSupport.property(PropertyConfigurerSupport.java:104)
at
org.apache.camel.dataformat.beanio.BeanIODataFormatConfigurer.configure(BeanIODataFormatConfigurer.java:42)
at
org.apache.camel.support.PropertyBindingSupport.setSimplePropertyViaConfigurer(PropertyBindingSupport.java:806)
... 40 more
Caused by: org.apache.camel.NoTypeConversionAvailableException: No type
converter available to convert from type: java.lang.String to the required
type: java.nio.charset.Charset
at
org.apache.camel.impl.converter.CoreTypeConverterRegistry.mandatoryConvertTo(CoreTypeConverterRegistry.java:207)
at
org.apache.camel.impl.converter.CoreTypeConverterRegistry.mandatoryConvertTo(CoreTypeConverterRegistry.java:188)
at
org.apache.camel.support.component.PropertyConfigurerSupport.property(PropertyConfigurerSupport.java:102)
... 42 more
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)