Spring-Boot-XML-Restful-Service
2015-12-16 20:40
405 查看
http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-write-an-xml-rest-service
发现需要依赖jacson-dataformat-xml 在pom中添加了(2.7rc)
helloworld实验成功 可以输出User类json数据和xml数据
测试发现map格式的数据不能正常转换成功(建议结果都使用pojo格式)
出现错误:
尝试将jackson-dataformat-xml的版本改为更低的版本
发现不能正常转换
报错:
如果添加
map或map的包装类报错
否则仍出现错误
测试如果是
User是一个Pojo类 无需任何注解等
Contoller是一个普通的RestController也不需要任何特殊代码
需要依赖如下包
下面这个包不是必须的(对xml处理的性能优化)
可能会出现Log4j实例创建错误,添加如下依赖可解决
maven-resources-plugin可能报错可添加如下plugin配置
特定版本可能出现maven-clean-plugin的问题可以加入以下plugin配置
总体说明
1. 只需要在pom中引入相关的依赖,既可以自动实现XML格式数据输出. 2. 可能由于maven版本 java范本等问题 依赖项会有所不同
过程
2015年12月16日20:37:29
找到一篇博客 开始实验 因网速较慢不太顺利2015年12月16日22:52:33
寻找到了sprint-boot的官方文档,发现需要依赖jacson-dataformat-xml 在pom中添加了(2.7rc)
helloworld实验成功 可以输出User类json数据和xml数据
测试发现map格式的数据不能正常转换成功(建议结果都使用pojo格式)
public class Data { private Map<String,Object> objectMap=new LinkedHashMap<String, Object>(); //...省略 }
出现错误:
StartTag: invalid element name
尝试将jackson-dataformat-xml的版本改为更低的版本
发现不能正常转换
报错:
No converter found for return value of type:
如果添加
@XmlRootElement注解则Pojo类能正常转换
map或map的包装类报错
SAXException2: class com.sishuok.entity.User以及其任何超类对此上下文都是未知的。
2015年12月16日23:57:34
如果map中的对象是一个具体的类则使用@XmlRootElement能够转换成功,否则仍出现错误
StartTag: invalid element name
public class Data { private Map<String,User> objectMap=new LinkedHashMap<String, User>(); //...省略 }
测试如果是
list<User>的情况 jackson也可正常转换
list<Object>的情况下 如果Object的实例为Pojo也可以正常转换
成功示例
例子代码User是一个Pojo类 无需任何注解等
public class User implements Serializable { private Long id; private String name; //...省略 }
Contoller是一个普通的RestController也不需要任何特殊代码
@RestController @RequestMapping("/user") public class UserController { @RequestMapping("/{id}") private User view(@PathVariable("id") Long id) { User user = new User(); user.setId(id); user.setName("zhang"); return user; } }
需要依赖如下包
<dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> </dependency>
下面这个包不是必须的(对xml处理的性能优化)
<dependency> <groupId>org.codehaus.woodstox</groupId> <artifactId>woodstox-core-asl</artifactId> </dependency>
可能会出现Log4j实例创建错误,添加如下依赖可解决
<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.1.3</version> </dependency>
maven-resources-plugin可能报错可添加如下plugin配置
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.6</version> <dependencies> <dependency> <groupId>org.sonatype.plexus</groupId> <artifactId>plexus-build-api</artifactId> <version>0.0.7</version> </dependency> </dependencies> </plugin>
特定版本可能出现maven-clean-plugin的问题可以加入以下plugin配置
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-clean-plugin</artifactId> <version>2.6</version> </plugin>
相关文章推荐
- 在eclipse中运行工程时 出现<ConnectionProperties> <PropertyCategory name="Connection/Authentication">的解决方法
- java web单点登录异常情况处理
- java#0 基本概念
- 黑马程序员——Eclipse快捷键总结
- 黑马程序员——Java开发工具Eclipse的使用
- Java的国际化支持(I18N问题)
- Java的国际化支持(I18N问题)
- Java WebService-CXF-基于SOAP的Web服务
- 使用eclipse发布web服务出现"Error occured when adding the module, xxxxxx, to the server"
- java.lang.RuntimeException: setAudioSource failed.
- 设置查看java的源程序
- 【Java EE 学习 70 下】【数据采集系统第二天】【Action中User注入】【设计调查页面】【Action中模型赋值问题】【编辑调查】
- Java多线程之----CyclicBarrier
- Struts2中的OGNL详解(和标签库一起使用)
- Java基础--数组
- ubuntu手动安装eclipse
- android studio项目如何导入到eclipse中
- Caused by: java.lang.IllegalArgumentException: Illegal character in scheme at index 0:
- 如何将android studio项目转换成eclipse
- java集合——集合框架