淘淘商城第18讲——关于发布和引用Dubbo服务时,报错cvc-complex-type.2.4.c: The matching wildcard is strict···

问题描述

淘淘商城项目作为一个SOA架构的项目,自然地会分成表现层与服务层这两层,为了各个层之间解耦合(或者最大限度地松耦合),我们使用了Dubbo这样一个alibaba开源的分布式服务框架,该框架最大的特点就是利用分层的方式来架构,从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。

但是我们在appplicationContext-service.xml文件中发布服务和在springmvc.xml文件中引用服务时,有可能即使我们配置了Dubbo约束,但是仍然会报错,会提示我们找不到dubbo:application、dubbo:registry、dubbo:protocol、dubbo:reference等元素。具体错误信息如下:

Multiple annotations found at this line:
- cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element ‘dubbo:application’.
- schema_reference.4: Failed to read schema document ‘http://code.alibabatech.com/schema/dubbo/dubbo.xsd’, because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not xsd:schema.

appplicationContext-service.xml文件中的错误信息截图如下:
淘淘商城第18讲——关于发布和引用Dubbo服务时,报错cvc-complex-type.2.4.c: The matching wildcard is strict···_第1张图片
springmvc.xml文件中的错误信息也截图如下:
淘淘商城第18讲——关于发布和引用Dubbo服务时,报错cvc-complex-type.2.4.c: The matching wildcard is strict···_第2张图片

产生原因

为什么会报这样的错误呢?因为阿里的开源网站http://code.alibabatech.com早已经挂掉了!这就说明系统不能找到dubbo.xsd约束文件。

解决方案

由于系统不能找到dubbo.xsd约束文件,因此我们来手动添加dubbo.xsd约束文件,你可按照如下详细步骤来操作。

第一步,在本地仓库中找到下载好的dubbo-2.5.3.jar包,它里面存在一个dubbo.xsd文件。
淘淘商城第18讲——关于发布和引用Dubbo服务时,报错cvc-complex-type.2.4.c: The matching wildcard is strict···_第3张图片
打开该压缩包,在META-INF目录下,你会看到dubbo.xsd文件,如下图所示。
淘淘商城第18讲——关于发布和引用Dubbo服务时,报错cvc-complex-type.2.4.c: The matching wildcard is strict···_第4张图片
第二步,将dubbo.xsd文件取出,并将其存放在dubbo-2.5.3.jar包所在的目录下。
淘淘商城第18讲——关于发布和引用Dubbo服务时,报错cvc-complex-type.2.4.c: The matching wildcard is strict···_第5张图片
第三步,点击Eclipse菜单栏中的Window菜单,然后在其下拉列表中点击Preferences选项。
淘淘商城第18讲——关于发布和引用Dubbo服务时,报错cvc-complex-type.2.4.c: The matching wildcard is strict···_第6张图片
第四步,这时会弹出一个如下窗口,在其右侧找到XML这一项并将其展开,你便会看到XML Catalog选项,然后点击它,接着再选中User Specified Entries,最后点击Add...按钮。
淘淘商城第18讲——关于发布和引用Dubbo服务时,报错cvc-complex-type.2.4.c: The matching wildcard is strict···_第7张图片
第五步,这时会弹出一个如下窗口,然后在Key type这一栏中选择URI,接着点击File System...按钮,相信你又会看到一个弹窗,紧接着在该弹窗中找到dubbo.xsd约束文件,最后点击打开按钮。
淘淘商城第18讲——关于发布和引用Dubbo服务时,报错cvc-complex-type.2.4.c: The matching wildcard is strict···_第8张图片
第六步,把窗口中的Key type这一栏改选为Schema location,Key这一栏中输入http://code.alibabatech.com/schema/dubbo/dubbo.xsd,然后点击OK按钮。
淘淘商城第18讲——关于发布和引用Dubbo服务时,报错cvc-complex-type.2.4.c: The matching wildcard is strict···_第9张图片
第七步,点击如下窗口中的OK按钮关闭该窗口。
淘淘商城第18讲——关于发布和引用Dubbo服务时,报错cvc-complex-type.2.4.c: The matching wildcard is strict···_第10张图片
第八步,右键相应的报红叉的配置文件,然后在其子菜单中点击Validate,稍等片刻红叉即可消失。
淘淘商城第18讲——关于发布和引用Dubbo服务时,报错cvc-complex-type.2.4.c: The matching wildcard is strict···_第11张图片

你可能感兴趣的:(项目实战之淘淘商城)