zoukankan      html  css  js  c++  java
  • 开发中遇到的错误处理

    1  myeclipse配置的tomcat无法debug启动,报错为:

    A configuration error occurred during startup. Please verify the preference field with prompt:cannot connect to VM 

    解决办法:管理员身份运行cmd 输入netsh winsock reset

    2  设置mysql持续连接时长:set global  wait_timeout=28800 ,interactive_timeout=28800;,查看:show variables like '%timeout%';

    3 spring配置数据源时有四种方式(1)spring自带的数据源DriverManagerDataSource  (2)dbcp  (3)c3p0   (4)jndi

       spring自带的数据源和dbcp可以通过加载外部的jdbc配置文件配置数据库连接 ,但是c3p0不可以,并且c3p0的jar包不只有c3p0还有mchange-commons-java.jar

    4 最近在用ssm框架开发项目,但是开发过程中service层事务回滚一直回滚不了(service 类上加注解),发现原来没有引入aopalliance-1.0.jar包,然后在spring配置文件中加入

    <!-- 事务 -->
    <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource" />
    </bean>
    <!-- 使用annotation定义事务-->
    <tx:annotation-driven transaction-manager="txManager" proxy-target-class="true" />

    5. angularJs中from表单中<input type="hidden" ng-model="id" name="id"/>这种情况下这个input的属性值传不到后台,需要修改成<input type="text" ng-hide="true" ng-model="id" name="id"/>

    6. mybatis的mapper配置文件中resultMap的type如果想要设置成map类型可以这样写java.util.HashMap或者直接hashMap,不能是java.util.hashMap,会报错。

    7.spring mvc 的controller层接收date类型的参数时需要在参数前加上注解@DateTimeFormat(pattern="yyyy-MM-dd")。同样,如果参数是个实体类,实体类中含有date类型的属性,那么这个实体类中的date类型的属性上也要加上这个注解。

    8.float类型的数值和double类型的数值最好不要比较大小,即使一样的值比较的结果是不相等的,都转换为同样精度的的数值再进行比较

    9.用的mysql数据库,某个表中的某个字段是float类型,由于使用的是mybatis,查询返回的是HashMap类型,如果该字段的值过大,查询出来的该字段的值始终是带有E的用科学计数法得出的结果,不利于直接使用,所以,修改查询返回HashMap类型,让查询返回一个自定义的<resultMap>,在这个resultMap中把这个float类型的值,映射成string类型就可以直接返回string类型

    10.开发中遇到base64解密加密时如果Base64.decodeBase64(encodingAesKey(String))报错,可能是commons-codec的jar包版本过低,使用1.9或以上就可以了

    11.微信企业号开发时如果遇到 异常java.security.InvalidKeyException:illegal Key Size,那么解决方案如下

      在官方网站下载JCE无限制权限策略文件(JDK7的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

     下载后解压,可以看到local_policy.jar和US_export_policy.jar  

     如果安装了JRE,将两个jar文件放到%JRE_HOME%libsecurity目录下覆盖原来的文件 

     如果安装了JDK,将两个jar文件放到%JDK_HOME%jrelibsecurity目录下覆盖原来文件

    12.浮点型数据计算时精度丢失问题:可以转换成BigDecimal类型的进行计算,不过要注意转换成BigDecimal类型时应该用String类型例如

    BigDecimal f1 = new BigDecimal("0.05");
    BigDecimal f2 = BigDecimal.valueOf(0.01);
    BigDecimal f3 = new BigDecimal(0.05);
    System.out.println("使用String作为BigDecimal构造器参数:");
    System.out.println("0.05 + 0.01 = " + f1.add(f2));
    System.out.println("0.05 - 0.01 = " + f1.subtract(f2));
    System.out.println("0.05 * 0.01 = " + f1.multiply(f2));
    System.out.println("0.05 / 0.01 = " + f1.divide(f2));
    这种形式的计算是没问题的,如果是下面这种情况,问题依然存在:
    System.out.println("使用double作为BigDecimal构造器参数:");
    System.out.println("0.05 + 0.01 = " + f3.add(f2));
    System.out.println("0.05 - 0.01 = " + f3.subtract(f2));
    System.out.println("0.05 * 0.01 = " + f3.multiply(f2));
    System.out.println("0.05 / 0.01 = " + f3.divide(f2));
    参考:http://www.tuicool.com/articles/nAFr6r

    13.使用hibernate建表时,如果实体类中有index属性,不能建表成功(这个问题浪费我一上午)
    14.nginx的conf配置文件if之后的(之间必须有空格,要不然启动不了
    15.jenkins从svn拉取代码的时候,拉取的方式是在源码管理配置中的Check-out Strategy这个参数,
    选择不同的配置有可能会遇到的问题是你在svn中有删除的文件,但是jenkins配置源码的地方可能有还会存在这个文件
    参考:http://zhangxingnan.blog.51cto.com/3241217/1427000
    16.配置spring mybatis时,mapper.xml一直加载不到,原因是mapper.xml在java包下面时不能被maven打包,解决办法是放在resource文件夹下或者
    maven的pom里面build中加入resources配置,具体配置可以百度
    17.mysql数据库text类型也是有长度限制的
    text 65535 bytes - 64kb
    mediumtext 16777215 bytes - 16Mb
    longtext 4294967296 bytes - 4Gb


  • 相关阅读:
    SpringMVC -- 梗概--源码--贰--下载
    SpringMVC -- 梗概--源码--贰--上传
    SpringMVC -- 梗概--源码--贰--拦截器:Interceptor
    SpringMVC -- 梗概--源码--贰--异常管理
    SpringMVC -- 梗概--源码--贰--RestFul收参(了解) @PathVariable
    SpringMVC -- 梗概--源码--贰--静态资源的访问问题
    SpringMVC -- 梗概--源码--贰--mvc:annotation-driven
    SpringMVC -- 梗概--源码--壹--springMVC json处理
    SpringMVC -- 梗概--源码--壹--数据传递
    spring mvc处理方法返回方式
  • 原文地址:https://www.cnblogs.com/liusk/p/4785659.html
Copyright © 2011-2022 走看看