最近尝试使用cxf3+spring4开发RESTful遇到两个问题,就此记录一下。
问题1:接口开发完成后,发布webservice接口。发布后能通过客户端代码成功调用接口,但无法显示wadl页面。
问题1原因:由于没有导入cxf-rt-rs-service-description,服务描述包。所以无法显示wadl页面,另外服务描述包还支持@Descriptions和@Description注解,添加注解后能对接口进行注释。
问题2:客户端调用CXF接口是报出”通配符的匹配很全面, 但无法找到元素 ‘jaxrs:client’ 的声明”错误。jaxrs:client节点为:
<jaxrs:client id="userService"
address="http://localhost:8080/cxf-spring/webservice/rs/"
serviceClass="org.cxf.spring.client.support.webservice.rs.UserResource">
<jaxrs:providers>
<ref bean="jacksonProvider" />
</jaxrs:providers>
</jaxrs:client>
发现这个问题后找了许多资料,但始终没有找到问题原因。后来查看cxf-rt-frontend-jaxrs-3.1.5.jar包里面的jaxrs.xsd文件后发现里面根本就没有clien节点。后来查看了几个版本的源码发现CXF3.X以后cxf-rt-frontend-jaxrs-3.1.5 jar包的jaxrs.xsd取消了client节点,只有CXF2.X的jar包里面的jaxrs.xsd文件才有这个节点。原因是CXF3.X后这个节点已经移植到了cxf-rt-rs-client jar包的jaxrs-client.xsd文件里面。所以以后要使用这个节点需要另外导入jaxrs-client.xsd。
CXF3+spring4发布RESTful问题总结
最新推荐文章于 2021-04-16 09:05:14 发布