您的位置:首页 > 编程语言 > Java开发

SpringMVC之旅-开发到部署过程中遇到的问题整理(不断更新)

2016-01-27 11:03 453 查看
开发中:
第一个问题:我在做一个APP的后台服务接口的时候遇到一个问题。在SpringMVC中有两个注解,@RequestBody和@ResponseBody。@RequestBody的作用是将输入参数为json时将json数据转换为java对象,@ResponseBody的作用是将输出结果的java对象转换成json数据。
开始我没有加入@ResponseBody,我发现在Android端使用Volley访问接口的时候返回的总是404错误,我一直没找到问题,后来我在电脑端访问接口的时候发现返回的也是404错误,不过浏览器找不到的地址居然是我返回的json数据转换成字符串.jsp的页面,原来是因为没有加入@ResponseBody注解,SpringMVC就将返回的Json结果映射成View,然后浏览器就找不到这个View页面,加入@ResponseBody后就会以Json数据的形式返回数据。
后来我将Volley中的Request对象换成了JsonObjectRequest,又出现了404错误,我在网上查了资料,原来SpringMVC如果不加入@RequestBody注解的话就不能接受Json格式输入的参数,而JsonObjectRequest传入的参数则是json格式的,然后再Controller的输入参数上加上@RequestBody问题就解决了。

第二个问题:我遇到一个很简单但是却花了我很多时间的问题,就是gradle在打包成war的时候没有将mybatis的mapper.xml文件打包进去,造成在eclipse里启动正常,通过war部署就出现mybatis
Invalid bound statement (not found)错误,折腾了好几天,解决方法是在build.gradle中添加任务

war {
from("/src/main/java/com/miying/mapper") {
include "*.xml"
into("/WEB-INF/classes/com/miying/mapper")
}
}
解决。

部署中:
在开发的时候我将Spring和Mybatis的配置文件都放在创建的一个名为Config的Source Folder下,在本地运行的时候没有问题,因为能找到这个Config文件夹,但是当我部署到linux服务器上的时候就出现错误,后来我把Config文件夹转移到WEB-INF下,然后服务器就能正常访问项目了。
本文出自 “技术不宅” 博客,请务必保留此出处http://chrischen.blog.51cto.com/9954795/1738885
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: