【问题标题】:error using camel jaxb with java route使用带有 java 路由的骆驼 jaxb 时出错
【发布时间】:2017-03-26 15:07:24
【问题描述】:

根据 Camel 文档,我创建了 JaxbDataFormat(但是文档中的示例代码使用了不存在的构造函数?)

@Override
public void configure() throws Exception {

    JaxbDataFormat jaxbDataFormat = new JaxbDataFormat();
    jaxbDataFormat.setContextPath("somepackage");

我有 pom 依赖

    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-jaxb</artifactId>
        <version>2.18.3</version>
    </dependency>

不起作用:“ConvertBody...因为无法创建数据格式 'jaxb'。”

有人可以提供一个示例代码,jaxb 转换应该如何与 Camel 一起工作。我有 Camel in Action 2ed,但那里的示例使用 XML-definde 路由。使用 XML 的过程似乎很简单——但我对使用 xml 作为编程语言不是很感兴趣;)

使用 java 8.

............

线程“CamelMainRunController”java.lang.RuntimeException 中的异常:org.apache.camel.FailedToCreateRouteException:无法在以下位置创建路由 route2:>>> Marshal[org.apache.camel.model.dataformat.JaxbDataFormat@57d7f108] [OnException... 因为无法创建数据格式“jaxb”。确保数据格式有效并且关联的 Camel 组件存在于类路径中 在 org.apache.camel.spring.boot.CamelSpringBootApplicationController.run(CamelSpringBootApplicationController.java:74) 在 org.apache.camel.spring.boot.CamelMainRunController$DaemonTask.run(CamelMainRunController.java:42) 在 java.lang.Thread.run(Thread.java:745) 原因:org.apache.camel.FailedToCreateRouteException:无法在以下位置创建路由 route2:>>> Marshal[org.apache.camel.model.dataformat.JaxbDataFormat@57d7f108] [OnException... 因为无法创建数据格式“jaxb”。确保数据格式有效并且关联的 Camel 组件存在于类路径中 在 org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1071) 在 org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:196) 在 org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:984) 在 org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:3401) 在 org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3132) 在 org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:183) 在 org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2961) 在 org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2957) 在 org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:2980) 在 org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:2957) 在 org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) 在 org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:2924) 在 org.apache.camel.main.Main.doStart(Main.java:129) 在 org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) 在 org.apache.camel.main.MainSupport.run(MainSupport.java:138) 在 org.apache.camel.spring.boot.CamelSpringBootApplicationController.run(CamelSpringBootApplicationController.java:69) ... 2 更多 原因:java.lang.IllegalArgumentException:无法创建数据格式“jaxb”。确保数据格式有效并且关联的 Camel 组件存在于类路径中 在 org.apache.camel.model.DataFormatDefinition.getDataFormat(DataFormatDefinition.java:107) 在 org.apache.camel.model.DataFormatDefinition.getDataFormat(DataFormatDefinition.java:88) 在 org.apache.camel.model.MarshalDefinition.createProcessor(MarshalDefinition.java:177) 在 org.apache.camel.model.ProcessorDefinition.makeProcessorImpl(ProcessorDefinition.java:545) 在 org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:506) 在 org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:222) 在 org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1068) ... 17 更多

【问题讨论】:

  • camel-jaxb 在运行时在您的类路径中可用吗?你如何运行骆驼?独立?春天?蓝图/OSGi?
  • 如果你使用 spring-boot 然后使用 camel-jaxb-starter 作为 maven 依赖。
  • 我正在使用 spring-boot,添加了 camel-jaxb-starter(并重新启动了 IDEA)。现在 jaxb 转换工作正常。感谢帮助 ! (想知道我应该如何结案?)
  • @AlessandroDaRugna 我也有同样的问题。我正在使用 Blueprint/OSGI 方式。在我的情况下,如果我在 fuse 服务器上运行我的包,那么解组效果很好,但是如果我使用 Junit 测试我的路由,那么我会收到错误。不知道为什么在测试我的路线时camel-jaxb 不可用。有什么建议/想法来解决这个问题吗?提前致谢。
  • @user3359005 也许您想为您的案例提出一个新问题。你用这个:camel.apache.org/blueprint-testing.html

标签: jaxb apache-camel


【解决方案1】:

添加到 pom

    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-jaxb-starter</artifactId>
        <version>2.23.1</version>
    </dependency>

并更新项目

【讨论】:

    猜你喜欢
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-06
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多