更新时间:2017-07-16 03:09:28
2759次阅读
评论
0
目前我准备部署 cxf 3.x+spring 4.x的服务器,然后,启动服务器居然报错
这是我的cxf客户端容器
<?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:jaxrs="http://cxf.apache.org/jaxrs" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd"> <jaxrs:client id="xxxRsService" address="http://localhost:8080/rest/test/get" serviceClass="com.zhoufetn.xxxService" inheritHeaders="true"> </jaxrs:client> </beans>
具体报如下错误
org.xml.sax.SAXParseException; lineNumber: 11; columnNumber: 30; cvc-complex-type.2.4.c: 通配符的匹配很全面, 但无法找到元素 'jaxrs:client' 的声明。 at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:437)
检查了好久,一开始以为jar报没加载完全缘故,然后就加jar包,后面在网上发行很多spring容器启动时报通配符的匹配很匹配,但无法找到元素。。。的错误是,一般意味着头文件的解析器有问题,我发现我的解析器跟网络上基本差不多,在众多的解决方案中,发现有个解决方案是:把jaxrs的解析器替换成jaxrs-client,原因是cxf的版本为3.x了,不是2.x的,我尝试替换了,但是失败了,后来思索了很久,界定去网上下载3.x的jar包,一查看代码,还是上面说的那个方案,只是我尝试的时候,有些配置不准确,然后就都没配置成功
cxf 3.x的客户端 的正确配置如下:
<?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:jaxrs="http://cxf.apache.org/jaxrs-client" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd http://cxf.apache.org/jaxrs-client http://cxf.apache.org/schemas/jaxrs-client.xsd"> <jaxrs:client id="xxxRsService" address="http://localhost:8080/rest/test/get" serviceClass="com.zhoufetn.xxxService" inheritHeaders="true"> </jaxrs:client> </beans>
然后,再次启动服务器妥妥的启动了
create:2017-07-16
阅读量(2759)
评论(
0
)