我链接sqlserver2000时报这样的错?
java.lang.NullPointerException at java.lang.String.concat(String.java:1503) at com.office.util.DataOperation.updateData(DataOperation.java:259) at com.system.log.bean.LogBean.insert(LogBean.java:35) at com.office.filters.SystemServlet.service(SystemServlet.java:94) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at com.office.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java:534)

解决方案 »

  1.   

    在com.office.util.DataOperation.updateData中我这样定义:
    private ConnectionPoolManager poolManager;
    {
            try {
                poolManager = ConnectionPoolManager .getInstance();
            } catch (IOException e) {
                logger.error(e.getMessage());
            }
        }
    引用
    public int updateData(SQLObject sqlObj) {
            Connection conn = null;
            try {
                conn = poolManager.getConnection("system");
                if (sqlObj == null) {
                logger.error("更新sql语句中为null!");
                throw new SystemException("更新sql语句中为null!");
            }
            PreparedStatement pst = null;
            if (conn == null)throw new SystemException(
                    "更新数据时出现了错误:connection is null!");
            int iCount;
             try {
                pst = conn.prepareStatement(sqlObj.getSql());
                Vector params = sqlObj.getParams();
                for (int i = 0; i < params.size(); i++) {
                    if (params.get(i) == null) {
                        logger.error("更新sql语句中第" + (i + 1) + "参数为null!");
                        throw new SystemException("更新sql语句中第" + (i + 1) +
                                                  "参数为null!");
                    }
                    pst.setObject(i + 1, params.get(i));
                }
                iCount = pst.executeUpdate();
                conn.commit();
                return iCount;
            } catch (SQLException sql) {
                try {
                    conn.rollback();
                } catch (SQLException sqle) {
                    logger.error("rollback show error:".concat(sqle.getMessage()));
                    throw new SystemException("rollback show error:".concat(sqle.
                            getMessage()));
                }
                logger.error("" + sql.getErrorCode());
                logger.error(sql.getMessage());
                throw new SystemException("更新数据时出现了错误:".concat(sql.getMessage()));
            } finally {
                try {
                    pst.close();
                } catch (SQLException sqle) {
                    logger.error(sqle.getMessage());
                    throw new SystemException("更新数据关闭时出错发生错误:".concat(sqle.
                            getMessage()));
                }
            }
            } catch (Exception e) {
                logger.error("更新数据发生错误:".concat(e.getMessage()));
                throw new SystemException("更新数据发生错误:".concat(e.getMessage()));
            } finally {
                try {
                    if (conn != null)
                        conn.close();
                } catch (SQLException e) {
                    logger.error("search data error:".concat(e.getMessage()));
                }        }
        }
      

  2.   

    结果总是这句报错pst = conn.prepareStatement(sqlObj.getSql());
      

  3.   

    你要查看一下你的Connection为什么取得是Null,需要Debug你的ConnectionPoolManager类,这个里面可能有问题,有可能数据库联接配置错误
      

  4.   

    Connection不为空,为空的话 会在这里抛出异常:
    if (conn == null)throw new SystemException(
                    "更新数据时出现了错误:connection is null!");
      

  5.   

    ConnectionPoolManager类是DBPool自带的类....