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)

Reply via email to