4

这可能是一个简单的错误配置问题,但我的 xml 文档获取我的标签时遇到问题。我收到错误

“在此行找到多个注释:-cvc-complex-type.2.4.c:匹配的通配符是严格的,但找不到元素“camelContext”的声明。-无法找到架构的元素“camelContext”的 Spring NamespaceHandler命名空间“http://activemq.apache.org/camel/”

但是当我在命名空间中添加时,我收到以下错误:

在此行找到多个注释: - cvc-complex-type.2.4.c:匹配的通配符是严格的,但找不到元素“camelContext”的声明。- schema_reference.4: 无法读取架构文档 'http://activemq.apache.org/camel/schema/spring/camel-spring.xsd',因为 1) 找不到该文档;2) 文件无法读取;3) 文档的根元素不是 . - 无法找到架构命名空间“http://activemq.apache.org/camel/schema/spring”的元素“camelContext”的 Spring NamespaceHandler

谁能帮我弄清楚为什么我会遇到这两个问题?我不是 xml 或骆驼方面的专家,所以任何帮助将不胜感激。下面是我的简单 xml 文档:

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



   <bean id="myrouter"      class="org.apache.camel.example.reportincident.ReportIncidentRoutes"/>



<!-- Camel Configuration -->

 <camelContext id="camel" xmlns="http://activemq.apache.org/camel/schema/spring">
    <routeBuilderRef ref="myrouter"/>


 </camelContext>

</beans>
4

2 回答 2

8

在 Camel 1.x 中,XML 的命名空间是以 activemq 开头的,例如

xmlns="http://activemq.apache.org/camel/schema/spring"

在 Camel 2.x 中,XML 的命名空间是纯 Camel,例如

http://camel.apache.org/schema/spring

由于 Camel 1.x 已停产,我假设您使用的是 Camel 2.x。如果是这样,您需要将 <camelContext> 标记中的命名空间更改为 2.x 样式。并删除 XML 文件顶部的旧引用。

于 2013-01-17T07:45:59.937 回答
0

谢谢!我有旧版本的 JBoss Fuse 6.2.1,我的路线运行良好。但在 JBoss Fuse 6.2.1 中,我得到了XML 没有拾取 <camelContext> 标签。在我将http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd添加到 xsi:schemaLocation 之后,它就可以工作了!!!

于 2016-01-21T20:22:45.747 回答