我知道并经历了很多像这样的类似问题。但我仍然没有得到我错过的地方。我在名称空间中指定了最新的xsds。我在Web Sphere中运行时仍然出现错误。但是我对Tomcat没有任何问题。
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:camel="http://camel.apache.org/schema/spring"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:cxf="http://camel.apache.org/schema/cxf"
xmlns:jaxrs="http://cxf.apache.org/jaxrs"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-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-3.0.xsd
http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd
http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd
">
<bean id="xRoute" class="com.tgt.test.web.routes.GetXRoute" />
<bean id="yRoute" class="com.tgt.test.web.routes.YRoute" />
<bean id="zRoute" class="com.tgt.test.web.routes.ZRoute" />
<camelContext id="camelContext" trace="true" xmlns="http://camel.apache.org/schema/spring">
<routeBuilder ref="xRoute"/>
<routeBuilder ref="yRoute"/>
<routeBuilder ref="zRoute"/>
</camelContext>
错误:引起:org.xml.sax.SAXParseException:cvc-complex-type.2.4.c:匹配的通配符是strict,但是找不到元素'camelContext'的声明。
请让我知道为什么这只会发生在wbesphere但不会发生在Tomcat上。对不起要问同样的问题。从昨天开始,我一直在挣扎。谢谢
答案 0 :(得分:2)
我在Web领域RSA环境中工作。它在使用TOMCAT容器的NON EAR类型的项目结构中工作正常。但当我将我的代码移动到EAR类型的项目结构时,它发生了
错误:引起:org.xml.sax.SAXParseException:cvc-complex-type.2.4.c:匹配的通配符是strict,但是找不到元素'camelContext'的声明。
这意味着,Spring coudnt找到了一个元素çamelContext'的声明,它应该出现在“http://camel.apache.org/schema/spring”中,它有一个命名空间引用 - &gt; “http://camel.apache.org/schema/spring/camel-spring.xsd”所以我检查camel sprin 2.12.1 jar中的camel-spring.xsd文件,camelContext就在那里。然后我认识到,虽然我已经将它们添加到了类路径中,但是它没有被EAR识别出来(添加到类路径意味着,(属性/构建路径/添加jar)每个项目。所以解决方案是,
获取EAR / META_INF并添加每个项目的类路径中所需的所有jar。
这个解决方案解决了这个问题。虽然这浪费了将近48小时的宝贵开发时间,但值得等待。我学到了更多。谢谢!