当前位置: 首页 > 知识库问答 >
问题:

尝试添加Jackson库时出现BeanCreationException

岑鸣
2023-03-14

我有一个简单的Hello World示例,它将Map传递给Camel,并通过Log4J将值显示到控制台。我想通过将Jackson库添加到我的Camel应用程序Context.xml来扩展这个示例,以JSON格式呈现这个映射

首先,我尝试将以下XML标记添加到我的applicationContext.xml中(如http://camel.apache.org/json.html大学“在Spring DSL中使用JSON”中所指定的)

<camel:dataFormats>
    <camel:json id="jack" library="Jackson"/>
</camel:dataFormats>

但是当我将它添加到我的applicationContext.xml并运行我的Java代码时,我得到了下面的XmlBeanDefinitionStoreException消息:

cvc-complex-type.2.4.a: Invalid content was found starting with element 'dataFormats'.     One of '{"http://camel.apache.org/schema/
 spring":route}' is expected. 

将这些标签移动到camelContext的内部或外部会产生相同的错误(只是在camelContext内时的URL列表更长)。

我需要在ApplicationContext.xml中指定其他内容吗?

这是我目前的applicationContext.xml:

更新:下面的xml现在可以工作了。必须移动数据格式XML标记的位置。

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camel="http://camel.apache.org/schema/spring"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

<bean
    class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor" />
<context:component-scan base-package="sample" />
<context:annotation-config />

<camel:camelContext id="HelloWorldContext">

<camel:dataFormats>
  <camel:json id="jack" library="Jackson"/>
</camel:dataFormats>

<camel:route>

     <camel:from
          uri="timer://hello.world.request.timer?fixedRate=true&amp;period=10000" />
     <camel:to uri="log:hello.world.request?level=INFO?showAll=true" />
     <camel:bean ref="helloWorld" />
     <camel:to uri="log:hello.world.response?level=INFO?showAll=true" />
</camel:route>

</camel:camelContext>

<bean id="jms" class="org.apache.activemq.camel.component.ActiveMQComponent">
   <property name="configuration" ref="jmsConfig" />
</bean>

<bean id="jmsConfig" class="org.apache.camel.component.jms.JmsConfiguration">
  <property name="connectionFactory" ref="jmsConnectionFactory" />
  <property name="transacted" value="false" />
  <property name="concurrentConsumers" value="1" />
</bean>

<bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
  <property name="brokerURL" value="vm://localhost" />
  <property name="redeliveryPolicy" ref="redeliveryPolicy" />
  <property name="prefetchPolicy" ref="prefetchPolicy" />
</bean>

<bean id="prefetchPolicy" class="org.apache.activemq.ActiveMQPrefetchPolicy">
  <property name="queuePrefetch" value="5" />
</bean>

<bean id="redeliveryPolicy" class="org.apache.activemq.RedeliveryPolicy">
  <property name="maximumRedeliveries" value="1" />
  <property name="backOffMultiplier" value="2" />
  <property name="initialRedeliveryDelay" value="2000" />
  <property name="useExponentialBackOff" value="true" />
</bean>

</beans>

共有1个答案

吕琪
2023-03-14

< code>dateFormats和< code>json元素是< code>camel命名空间的一部分。你需要具体说明

<camel:dataFormats>
    <camel:json id="jack" library="Jackson"/>
</camel:dataFormats>
 类似资料:
  • 我正在尝试在单个链表的末尾插入一个新节点。但是我在编译后不断得到空点例外。 下面是节点类。 这里是单个LL类 addFirst()方法有效。当我试图通过addLast()创建一个LL时,出现了NullPointerException。我想< code > if(size = = 0){ head = new node;一定有什么问题;},但是我想不通。

  • 每当用户在JOptionPane确认对话框的帮助下被询问是否将产品添加到购物车时选择“是”,我都会尝试将行添加到我的表中。我的代码如下: 然而,我得到了这个错误:线程“AWT-EventQueue-0”java.lang.ClassCastException:javax.swing中出现异常。JTable$1无法强制转换为javax.swing.table.DefaultTableModel 有人

  • 我试图安装条带宝石,我得到这个错误 Gem::Ext::BuildError:错误:无法生成Gem本机扩展。 /Users/Fysh/.rvm/rubies/ruby-2.0.0-p643/bin/ruby-r./siteconf20151005-1267-af6sn6.rbextconf.rb检查-lstdc中的main()...*extconf.rb失败*由于某种原因无法创建Makefile,

  • 建造Gradle。应用程序部分。 项目部分。 我的文件中没有所有项目部分。这就是为什么我自己添加了这个地方。但是那些在所有项目中定义的 它必须成形。当我尝试引入google()和mavenCentral时,它给出了buildScript中已经定义的错误。当我试图只定义没有定义google()和mavenCentral;Build被配置为首选设置存储库而不是项目存储库,但存储库“maven”是由Bu

  • 问题内容: 我正在尝试使用Jackson将一些JSON数据转换为Java对象(精确地说是对象列表),但出现此错误: org.codehaus.jackson.map.JsonMappingException:无法反序列化objectlayerlayer的实例。START_ARRAY令牌之外的详细信息 这是代码: ld 是Json格式的列表,这是让我在jackson教程中感到困惑的部分。这是什么 新

  • 问题内容: 尝试添加另一个列表时抛出List.addAll 。 在循环中,我在做, 从文件中读取 supportType 。 但是第2行抛出一个,但是我无法确定为什么? 我要在列表中添加另一个列表,那么为什么不支持此操作? 问题答案: 返回一个固定大小的列表,该列表由数组支持,并且您不能向其中添加元素。 您可以创建一个可修改的列表以进行工作: