发表于: 2016-03-15 23:26:10

1 3767


【操作步骤】
1.配置DHC插件。安装方法和PostMan方法一样,版本是DHC-REST-HTTP-API-Client_v0.8.1.1。途中碰到一些问题,提示我文件名前有"_",解决方法是:http://chromecj.com/utilities/2015-04/423.html
2.解决昨天的503错误。新建一个项目,然后把原来项目中的文件一个一个复制过来,最后发现问题出在StudentMapper.xml文件中,然后我把该文件里面的内容全部删除,重新一段段往里面粘贴,最后确定是<sql></sql>中的内容出错。



【知识总结】
1.在使用PostMan/DHC时要注意数据提交方式,这篇文章介绍了四种常见的POST数据提交方式:https://imququ.com/post/four-ways-to-post-data-in-http.html

2.PostMan使用步骤:如果是GET方法,那么很简单,在地址栏输入地址点击send即可;如果是POST方法,过程就有点麻烦了,先把URI输入地址栏,方法选择POST,编辑Headers,令Header为Content-Type,Value为application/json,然后数据提交方式要选raw,不要选form-data和x-www-form-urlencoded,还要记得旁边不要选Text,要选JSON,然后在Body框里面输入JSON格式的对象,这里需要注意了:在Controller.java类里面对应方法的参数中会有一个参数前面用@RequestBody标注了,那么在Body框里面就要把被标注的那个对象的属性都写上。
  这些是我自己的经验总结,因为刚开始我的@RequestBody标注的对象是StudentRequest类,在这个类里面有两个对象:Header和Student,此时我在Body框里面输入Student的属性时,就会报错,是那种ERROR 503的错误,而当我把@RequestBody标注的对象改为Student时,在Body框里输入Student的属性时,就会好很多,虽然也添加失败了,但这就是另一个问题了。至少说明,Body框里面应该把@RequestBody标注的对象的所有属性都写上。

【出现的问题(已解决)】



【出现的问题(未解决)】
1.关于操作步骤2中的那个错误我尚未解决,这个bug是这样的。这段代码在StudentMapper.xml中,刚开始代码是这样:
    <!-- deleteByCondition 条件删除 -->
    <delete id="deleteByCondition" parameterType="Student">
        delete from student_3
        <include refid="ifWhere"/>
    </delete>
    <!-- findByCondition 条件查询 -->
    <select id="findByCondition" resultMap="mStudent" parameterType="Student">
        select * from student_3
        <include refid="ifWhere"/>
    </select>
    <!-- findCountByCondation 符合条件的结果数量 -->
    <select id="findByCondition" parameterType="Student" resultType="long">
        select count(*) from student_3
        <include refid="ifWhere"/>
    </select>
    <!-- 公共sql语句 -->
    <sql id="ifWhere">
        <where>
            <if test="id != null and id != ''"> and id=#{id} </if>
            <if test="name != null and name != ''"> and name=#{name} </if>
            <if test="age != null and age != ''"> and age=#{age} </if>
            <if test="profession != null and profession != ''">and profession=#{profession} </if>
            <if test="create_at != null and create_at != ''">and create_at=#{create_at} </if>
            <if test="update_at != null and update_at != ''">and update_at=#{update_at} </if>
        </where>
    </sql>
如果删除掉整个<sql></sql>标签中的内容,就不会报错;如果只删除掉<sql></sql>中的<where></where>标签里面的内容,依然会报错;如果不改变<sql></sql>中的内容,而是删除掉上面三个<include refid="ifWhere"/>,依旧会报错;如果将<sql></sql>一段改为<sql id="ifWhere"> where id=#{id} </sql>,还是会报错,所以我猜可能是某个jar包的版本不支持这种公用sql语句。


【疑问】
1.maven web工程怎样检查bug,好像没有断点设置之类的东西?


返回列表 返回列表
评论

    分享到