如下异常信息[12:59:21.109] javax.servlet.ServletException: java.lang.NullPointerException
[12:59:21.109]  at org.apache.struts.action.RequestProcessor.processException(Re
questProcessor.java:535)
[12:59:21.109]  at org.apache.struts.action.RequestProcessor.processActionPerfor
m(RequestProcessor.java:433)
[12:59:21.109]  at org.apache.struts.action.RequestProcessor.process(RequestProc
essor.java:236)
[12:59:21.109]  at org.apache.struts.action.ActionServlet.process(ActionServlet.
java:1196)
[12:59:21.109]  at org.apache.struts.action.ActionServlet.doGet(ActionServlet.ja
va:414)
[12:59:21.109]  at javax.servlet.http.HttpServlet.service(HttpServlet.java:115)
[12:59:21.109]  at javax.servlet.http.HttpServlet.service(HttpServlet.java:92)
[12:59:21.109]  at com.caucho.server.dispatch.ServletFilterChain.doFilter(Servle
tFilterChain.java:106)
[12:59:21.109]  at org.springframework.orm.hibernate3.support.OpenSessionInViewF
ilter.doFilterInternal(OpenSessionInViewFilter.java:174)
[12:59:21.109]  at org.springframework.web.filter.OncePerRequestFilter.doFilter(
OncePerRequestFilter.java:77)
[12:59:21.109]  at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterF
ilterChain.java:70)
[12:59:21.109]  at org.springframework.web.filter.CharacterEncodingFilter.doFilt
erInternal(CharacterEncodingFilter.java:78)
[12:59:21.109]  at org.springframework.web.filter.OncePerRequestFilter.doFilter(代码如下
CallableStatement proc = nultry {
 proc = conn.prepareCall("{call "+name+"}");   
 proc.execute();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}  l; 
OncePerRequestFilter.java:77)
[12:59:21.109]  at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterF
ilterChain.java:70)
[12:59:21.109]  at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFil
terChain.java:173)
[12:59:21.109]  at com.caucho.server.dispatch.ServletInvocation.service(ServletI
nvocation.java:229)
[12:59:21.109]  at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.
java:274)
[12:59:21.109]  at com.caucho.server.port.TcpConnection.run(TcpConnection.java:5
11)
[12:59:21.109]  at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:516)
[12:59:21.109]  at com.caucho.util.ThreadPool.run(ThreadPool.java:442)
[12:59:21.109]  at java.lang.Thread.run(Thread.java:595)

解决方案 »

  1.   

    好像是调的地方("{call "+name+"}"); 不太正确吧。查一下JAVA API里面的例子。看看。
      

  2.   

    还有先在MYSQL里执行一下你调的那个存储过程看结果如何,,
    一步步测试喽。
      

  3.   

    debug模式下看一下是预编译出错了还是执行出错了
      

  4.   

    在mysql里边执行了,而且conn连接也不是null的  我都要疯了
      

  5.   

    try {
    String url = "jdbc:mysql://192.168.2.120:3308/tkgame_tank";     
        String name = "tank224";    
        String password = "tk123456";    
        Connection con = null;    
                           
            Class.forName("com.mysql.jdbc.Driver");    
                    
           con = DriverManager.getConnection(url, name, password);    
                    
              
           CallableStatement stmt = null;    
                
               
           
           stmt = con.prepareCall("{call gpupdate()}");        
           stmt.execute();    
                        
           int i = stmt.getInt(1);   我执行这段代码也会报错     stmt = con.prepareCall("{call gpupdate()}");        这行会有null指针异常
      

  6.   


      Connection conn = ConnectDb.getConnection();
      CallableStatement cs = null;
      try {
       cs = conn.prepareCall("{call sp2(?)}");
       //第一个参数的类型为Int
       cs.registerOutParameter(1, Types.INTEGER);
       cs.execute();
       //得到第一个值
       int i = cs.getInt(1);  
       System.out.println(i); 如果你一个参数返回的是Int类型,要先注册返回类型吧!还有就是,你调用的存储过程,是否有传递的参数? 然后断点调试下,应该没问题呢!
      

  7.   

    con空指针,打印con对象看看是否存在?
      

  8.   

    conn 不为null  就一个语句没有参数传递。
      

  9.   

        这样代码应该没有什么问题呢!换个新版本的jar试试,不行的话,重新换个新版本的mysql~