在 Camel 4.0 中从 XML 创建路由

问题描述 投票:0回答:1

在准备发布 Camel 4.0 时,我正在尝试找到一种方法来迁移我的方法,这些方法从 XML 文件创建

Route
RouteDefinition
对象,其路由如下所示:

<routes xmlns="http://camel.apache.org/schema/spring" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://camel.apache.org/schema/spring
                            http://camel.apache.org/schema/spring/camel-spring-3.20.2.xsd">


    <route id=....>
......
    </route>
</routes>

这样它们就可以加载到 CamelContext 中

在 Camel 3.20 中,我将它们加载到 CamelContext 中,就像

            String xmlContent = myBean.getXMLFileContent();//imagine this string's content is as described above
//I am open to converting this string into a java.io.File and new methodologies that the Camel team is leaning towards
            try (InputStream is = new ByteArrayInputStream(xmlContent.getBytes())) {

                XMLRoutesDefinitionLoader loader =   extendedCamelContext.getXMLRoutesDefinitionLoader();
                RoutesDefinition routesDefinition = (RoutesDefinition) loader.loadRoutesDefinition(camelContext, is);
                modelCamelContext.addRouteDefinitions(routesDefinition.getRoutes());
            }

通过导入

        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-xml-io</artifactId>
            <version>${camel.version}</version>
        </dependency>
java spring spring-boot apache-camel spring-camel
1个回答
0
投票

我遇到了同样的问题,对我来说,通过添加整个 Spring Boot 启动依赖项解决了这个问题。好像有些课程改变了。

        <dependency>
            <groupId>org.apache.camel.springboot</groupId>
            <artifactId>camel-spring-boot-xml-starter</artifactId>
        </dependency>

你能尝试一下吗?

© www.soinside.com 2019 - 2024. All rights reserved.