我的异常

平时在开发过程中,总会遇到各种各样的异常,有时间就记载一下,以免下次再出现时就不用再问度娘了。

 

1、IOException while loading persisted sessions

严重: IOException while loading persisted sessions: java.io.EOFException
严重: Exception loading sessions from persistent storage

原因:tomcat对硬盘的session读取失败,

解决办法:将work下面的文件清空,主要是*.ser文件,或者只是删除掉session.ser即可以解决。

转载:http://www.blogjava.net/apple0668/archive/2007/10/12/152383.html

 

 2、java.lang.IllegalArgumentException: Cannot format given Object as a Number
      at java.text.DecimalFormat.format(DecimalFormat.java:487)
例子:为dj格式化

 private Double field7;
 private String dj;

 public void setField7(Double field7) {
  this.field7 = field7;
  DecimalFormat df=new DecimalFormat("#.00");
  this.setDj(df.format(field7));
 }
  public void setDj(String dj) {
  this.dj = dj;
 }

df.format(),这个方法特别容易报错,必须保证传进去的参数必须是数字,非数字的其他任何数据都会报上面错:Cannot format given Object as a Number。 这次在弄的时候,我十分的确定这个field7绝对是个Double类型的数据,但还是一如既往的报错,查来查去,才发现,这个field7的第一个数字(是循环一个List出来的数据)是个Double数字,是个数字,第二个在数据库里面没有值,查出来是个NULL,结果就报错了。最后加了个非空的判断,才不报错了。哎,这个NULL啊,真是神通广大!

3、sequence does not exist

用惯了SQL Server,就知道native的主键策略,对这个sequence是一点都不清楚啊。

会报这个错通过都是因为insert数据时没有设置主键策略,所以在映射文件中设置一下,就可以了。

 <id name="field1" type="java.lang.Integer">
            <column name="FIELD1" precision="8" scale="0" />
            <generator class="sequence">
            <param name="sequence">TABLE1_SEQUEN</param>
            </generator>
 </id>

 

4 Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.

调用一个Hibernate的saveOrUpdateAll方法时报错:org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.

问题:只读模式下(FlushMode.NEVER/MANUAL)写操作不被允许:把你的Session改成FlushMode.COMMIT/AUTO或者清除事务定义中的readOnly标记。

 导致这个问题的可能有多方面的原因,但目前我遇到的就只有两个方面的,都跟事务的配置有关系。

1、事务配置特性的问题,像这种

<tx:method name="find*" propagation="NOT_SUPPORTED" read-only="true"/>

有时候会因为有后面个read-only="true"而导致这个问题。所以去掉read-only='true'这个属性可能就能解决问题了。

 

2、配置事务中包的问题。

<aop:config proxy-target-class="true">
  <aop:pointcut id="allManagerMethod"
   expression="execution(* com.dao.*.*(..))" />
  <aop:advisor advice-ref="txAdvice" pointcut-ref="allManagerMethod" />
 </aop:config>

有可能咱们自己写的方法没有在指定的包里面,把包的路径修改下,或者重新添加一个就OK了。如:

<aop:config proxy-target-class="true">
   <aop:pointcut id="allManagerMethod"   expression="execution(* com.dao.*.*(..))" />
  <aop:pointcut id="aop1"   expression="execution(* com.impl.*.*(..))" />
  <aop:advisor advice-ref="txAdvice" pointcut-ref="allManagerMethod" />
  <aop:advisor advice-ref="txAdvice" pointcut-ref="aop1" />
 </aop:config>
 

 5、NOClassDefFoundError :org/apache/commons/lang/exception/NestableRuntimeException

使用JSON解析时报错:NOClassDefFoundError :org/apache/commons/lang/exception/NestableRuntimeException

项目里面已经导入了json-lib包,还是报上面的错。最后发现是少了以下的JAR包:

commons-beanutils

commons-lang

commons-collections

commons-logging

ezmorph

 

 

你可能感兴趣的:(我的异常)