当前位置: 代码迷 >> J2EE >> Struts has detected an unhandled exception: 下的空指针错误、求解决
  详细解决方案

Struts has detected an unhandled exception: 下的空指针错误、求解决

热度:595   发布时间:2016-04-19 22:56:25.0
Struts has detected an unhandled exception: 下的空指针异常、求解决
错误信息:
Struts Problem Report

Struts has detected an unhandled exception:
Messages: 
File:  com/bbs/util/DBUtil.java
Line number:  46
Stacktraces
java.lang.NullPointerException

    com.bbs.util.DBUtil.close(DBUtil.java:46)
    com.bbs.service.CategoryService.list(CategoryService.java:57)
    com.bbs.action.CategoryAction.list(CategoryAction.java:44)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:453)
    com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:292)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:255)
    org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
    org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
。。。。。。。。
-----------------------------------------------------------------------------------

关闭连接代码:

public static void close(Connection conn,Statement stmt,ResultSet rs){

try {
if(conn!=null)
conn=null;
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

try {
if(stmt!=null)
stmt=null;
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if(rs!=null)
rs=null;
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

上述红色区域报警告、不知道怎么回事。。。
------解决方案--------------------
每一次close()之前都被赋值为null,不空指针就怪了
------解决方案--------------------
conn=null;
conn.close();
你都null了。 null 在close??
------解决方案--------------------
close之前,那那段附NULL值的代码去掉。都NULL值了还调用方法,不空指针异常的话就怪了。
  相关解决方案