CXF3+spring4发布RESTful问题总结
2016-02-29 11:46
323 查看
最近尝试使用cxf3+spring4开发RESTful遇到两个问题,就此记录一下。
问题1:接口开发完成后,发布webservice接口。发布后能通过客户端代码成功调用接口,但无法显示wadl页面。
问题1原因:由于没有导入cxf-rt-rs-service-description,服务描述包。所以无法显示wadl页面,另外服务描述包还支持@Descriptions和@Description注解,添加注解后能对接口进行注释。
问题2:客户端调用CXF接口是报出”通配符的匹配很全面, 但无法找到元素 ‘jaxrs:client’ 的声明”错误。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。
问题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。
相关文章推荐
- Java 回顾笔记 匿名内部类
- 【leetcode】【36】Valid Sudoku
- RxJava 过滤操作符 distinct和elementAt
- 【转】Java ConcurrentModificationException 异常分析与解决方案--还不错
- 《JAVA编程思想》日志(四)------控制执行流程
- Java中的DatagramPacket与DatagramSocket的初步
- 【转】Java ConcurrentModificationException异常原因和解决方法
- 使用eclipse和maven创建activiti项目基础配置
- 使用eclipse和maven创建activiti项目基础配置
- java list add 方法理解
- 【java基础】Lock与synchronized 的区别
- java中servlet的各种路径
- Eclipse项目导入Android Studio错误积累
- 【java基础】Java中的强引用,软引用,弱引用和虚引用
- JAVA中int、String的类型转换
- Java快速排序
- 【java基础】线程安全的单例模式
- 【leetcode】【34】Search for a Range
- Java内存泄露原因详解
- Java多线程学习(二)