javaWeb错误集结

  • Failed to create a Maven project: ‘xxx/pom.xml’ already exists in VFS
    问题描述,在idea中新建了一个maven项目,然后删除后,又重现创建名称相同的maven项目。
    解决方式:
    1.通过idea打开任意一个项目
    2.File > Invalidate Caches / Restart …
    3.点击“Invalidate and Restart”
    感谢博客:https://www.cnblogs.com/liuxm2017/p/9803129.html

  • Caused by: org.hibernate.boot.MappingNotFoundException: Mapping (RESOURCE) not found
    问题描述:在idea中构建maven项目使用hibernate框架,报错找不到 mapping对应的xml文件 :cn/edu/sicau/domain/User.hbm.xml
    对于MAVEN项目,Eclipse会自动把项目src\main\java\目录下的配置文件(.xml)和资源文件(.properties)搬运到target目录下,而intellij idea默认是不会帮我们做这件事的
    解决方法:
    在pom.xml中插入

<!--解决Intellij构建项目时,target/classes目录下不存在mapper.xml文件-->
    <resources>
      <resource>
        <directory>${basedir}/src/main/java</directory>
        <includes>
          <include>**/*.xml</include>
        </includes>
      </resource>
    </resources>

在这里插入图片描述
注意放入< build >中
感谢文章:https://www.cnblogs.com/yft-javaNotes/p/10333706.html

  • java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
    问题描述:在idea中构建maven项目时,报错
    解决方法:
    使用比较新的mysql-connector-java 的jar包。
    原来项目的jar包版本是5.1.26会报错,换成5.1.46就ok了:mysql-connector-java-5.1.46
    转自:https://blog.csdn.net/baijinwen/article/details/81629979

  • org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
    错误描述:在一对多关联表插入数据时,报错
    原因:在hibernate框架中,一对多表关联时如果在一对多的关联关系的一表的配置文件中

<set name="userSet" cascade="save-update">
   <key column="urid"></key>
   <one-to-many class="cn.edu.sicau.domain.User"/>
</set>

配置了cascade=“save-update”,并在代码中为实体类指定了id,就会根据实体类的id来更新数据表中的记录。
解决方法:代码中不指定实体类的id
感谢文章:https://www.cnblogs.com/aishangtaxuefeihong/p/7687322.html

  • java.lang.IllegalArgumentException: Unknown return value type: java.lang.Boolea
    错误原因controller层 没有加@ResponseBody
    @ResponseBody 注解的作用:
  1. @responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据,需要注意的呢,在使用此注解之后不会再走试图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据。

  2. 等效

@RequestMapping("/login")
  @ResponseBody
  public User login(User user){
    return user;
  }

User字段:userName pwd
  那么在前台接收到的数据为:’{“userName”:“xxx”,“pwd”:“xxx”}’

  效果等同于如下代码:
  @RequestMapping("/login")
  public void login(User user, HttpServletResponse response){
   response.getWriter.write(JSONObject.fromObject(user).toString());
  }
  • 在java项目中,js通过ajax请求controller层方法。返回的状态码为200,但是却不执行success,直接执行error方法
    调试方法:
jQuery.ajax({
      type: "POST",
      async: true,
      dataType: "json",
      url: this.iurl + '/xxx/xxxx',
      data: {venderIds: venderIds, random: Math.random()},
      success: function (result) {
          console.log("zslog 13.2 异步调用返回成功,result:"+result);
       },
      error: function (XMLHttpResponse, textStatus, errorThrown) {
          console.log("1 异步调用返回失败,XMLHttpResponse.readyState:"+XMLHttpResponse.readyState);
          console.log("2 异步调用返回失败,XMLHttpResponse.status:"+XMLHttpResponse.status);
          console.log("3 异步调用返回失败,textStatus:"+textStatus);
          console.log("4 异步调用返回失败,errorThrown:"+errorThrown);
      }
});

通过调试发现是因为controller层返回的数据格式不完全符合json格式。

参考博客:
https://blog.csdn.net/qq_39326137/article/details/81367510
https://blog.csdn.net/qq_35808136/article/details/88970198
https://blog.csdn.net/java_zhangshuai/article/details/80274510

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值