工作中所遇到的异常排错总结

1:关于注解的方式获取对象-jdk1.5以后,spring-2.5版本以后支持

2:内存溢出异常处理

1)查看eclipse的eclipse.init文件查看其内存

2)修改参数(window-preference-java-installed JRES-jdk1.6-edit(-Xms256m -Xmx512m))

JVM堆的设置时java虚拟机在程序执行时自动为程序所分配的空间,一般分为Xms(初始空间)是物理内存的1/4,最大空间(Xmx)是物理内存的1/4.调整即可。

3:jvm already in use(端口占用):

1)改服务器的端口号即可(不推荐)

2)netstat -ano查看pid找到对应的进程杀掉即可

4:jsp页面路径问题

<%String path=request.getContextPath();%>

el表达式:<%=path%>

5:struts标签的异常处理

<s:iterator id="statementConfig" value="statementTypes" status="item">
  <tr>
    <td>
     <input type="hidden" name="stateDateType" value="${stateDateType}"/>
     <s:if test='#statementConfig.stateDateType=="M"'>
      每月
     </s:if>
     <s:else>
      年度
     </s:else>
    </td>
  </tr>
</s:iterator>

1):一定要添加id属性为集合中所指泛型的对象(红色部分)

2):if判断时比较和字符串是否相等外面用单引号,字符串用双引号引起来表示字符串(红色部分)。

6:web.xml文件版本如果是2.3的版本则jsp页面不支持el表达式需要在web.xml文件中添加c标签扩展库
   <taglib>
            <taglib-uri>/c-rt</taglib-uri>
            <taglib-location>/WEB-INF/c-rt.tld</taglib-location>
     </taglib>
也可以在jsp页面中引入c标签
<%@ taglib uri="/WEB-INF/c-rt.tld"  prefix="c"%>  或
<%@ taglib uri=http://java.sun.com/jstl/core_rt prefix="c"%>sun公司提供的核心标签库

7:控制台想要打印执行的sql语句需要在log4j.properties文件中修改相关配置

log4j.logger.java.sql.Connection=DEBUG(级别)
log4j.logger.java.sql.Statement=INFO
log4j.logger.java.sql.PreparedStatement=DEBUG(级别), stdout, dailyrollingfile

8:ibatis中resultMap和resultClass的区别

当一个实体类对应一张表,也就是实体类的每一个属性和表中的每一个字段相对应在resultMap中一一映射,在
查询的时候将查询的集合封装成该实体类的对象返回的结果可以是resultMap或者是resultClass。如果是resultMap那么在
映射中必须找到一一对象的字段和属性,如果是resultClass则可以不用一一对应只要实体类中有与之对应的属性即可。
查询的时候需要实体类的那个属性。就用 (select ……字段 as 属性) 对应封装到实体类。

9:数据库小知识记住就行

如果查询列中所起别命中有特殊字符或者空格则需要将别名用双引号引起来否则报错。
A like B 在oracle数据库中 %可以代表0个,1个或者多个任意字符。-则代表任意一个字符。

10:Spring框架中关于注解的方式获取对象

dao层对象获取:
@Respository("templateDaoImpl")就相当于<bean id="daoImpl" class="…….dao.impl"></bean>
service层需要调用dao层对象:
@Resource
private IDao templateDaoImpl
这样在service层就获取了dao层对象
service层对象的获取:
@service("templateService")就相当于<bean id="serviceImpl" class="…….service.impl"></bean>
action层需要调用service层对象:
@control
private Iservice templateService
这样在action层就获取了service层的对象
不论使用@Resource还是使用@autowired效果都是一样的。而且都不需要再添加set方法。

11:java中的特殊字符如:
"|" 如果以此将字符串切割开的话就需要调用String.split("|")这是得不到预期结果的,需更改为String.split("\\|")(+、*也是这样)
"http://127.0.0.1:8080/org"如果将此字符串按"//"切割,String.split("");

12:Error starting static Resources workspace\.metadata\.plugins\org.eclipse.wst.server.co
这个错误不影响程序的运行。但是看着很恶心,所以找到对应的文件夹下的temp/server.xml里面的<context/>删掉

13:javax.jsp.context/javax.jsp.* con't resovled to be a type 报这个错误时应为缺少jar包(servlet.jar)

        如果不小心把workspace文件夹下的.metadata文件夹删掉。eclipse里面的项目将自动消失。这个时候需要重新import一下将workspace下的项目导入到eclipse中

14:

ssh框架整合出现set注入空指针很可能一个重要的原因就是spring和struts整合以后struts的action交由spring管理所以在配置struts.xml的action时候需要
将class的值设置为对应applicationContext.xml里面对应bean的id值。

15:ssh框架整合出现在read-only mode下无法实现增删改操作,因为hibernate的事物默认的flush-mode:never就是说只能进行读操作。要解决此问题:
1)在web.xml中openSessionInviewFilter中配置<init-param> <param-name>singleSession</param-name> <param-value>false</param-value></init-param>
2)在spring的配置文件中对相关方法配置事物操作

16:db2数据库函数COALESCE(param,0);如果param是空则用0代替相当于oracle数据库中的nvl(salary,0)

工作中遇到的10点实际问题总结一下以便以后借鉴参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值