开发中:

  第一个问题:我在做一个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下,然后服务器就能正常访问项目了。