Spring和drools整合遇到问题cvc-complex-type.2.4.c

来源:互联网 发布:二律背反 知乎 编辑:程序博客网 时间:2024/06/07 06:29

drools版本:5.3

错误描述

 cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element drools:keybase

从错误信息来看是没有找到keybase节点

 

schema配置:

 

Xml代码  收藏代码
  1. http://drools.org/schema/drools-spring  
  2.            http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring-1.0.0.xsd">  

 

这样的配置在联网的情况下没有问题,当断网后就出来了提示的错误,

 

原因:

在类路径找不到命名空间为 “http://drools.org/schema/drools-spring”的schema,所以会到网上去找但是网上也找不到就会抛出错误。

 

纠结:

但是在drools-spring-1.0.0.xsd所在的drools-spring.jar已经引入也就说明drools-spring-1.0.0.xsd在类路径下面,这是什么原因造成的呢。。

 

解决:

终于发现了猫腻,解压drools-spring.jar打开META-INF会发现有个spring.schemas的文件打开内容为

 

 

Java代码  收藏代码
  1. http\://drools.org/schema/drools-spring-1.5.0.xsd=org/drools/container/spring/drools-spring-1.5.0.xsd  
  2. http\://drools.org/schema/drools-spring-1.4.0.xsd=org/drools/container/spring/drools-spring-1.4.0.xsd  
  3. http\://drools.org/schema/drools-spring-1.3.0.xsd=org/drools/container/spring/drools-spring-1.3.0.xsd  
  4. http\://drools.org/schema/drools-spring-1.2.0.xsd=org/drools/container/spring/drools-spring-1.2.0.xsd  
  5. http\://drools.org/schema/drools-spring.xsd=org/drools/container/spring/drools-spring.xsd  
  6. http\://drools.org/schema/drools-service-spring.xsd=org/drools/container/spring/drools-service-spring.xsd  

 

我去原来jar包中的xsd还有个映射文件按照改文件的映射将

 

Xml代码  收藏代码
  1. http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring-1.0.0.xsd  

 

  改为

 

Java代码  收藏代码
  1. http://drools.org/schema/drools-spring-1.5.0.xsd  

 

 好了现在可以正常运行了。

 

其他:

  可能会遇见eclipse不能只能提示的问题,解决方法为 包 xsd文件copy出来,配置eclise XML catalog。(这个都会)

 

 

结语:

  所有的“cvc-complex-type.2.4.c基本 ”基本上都是由于这个原因造成的,按照这种方法应该都能解决。

原创粉丝点击