java.sql.SQLException: Already closed.
at org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:84)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.java:181)
at org.apache.commons.dbutils.DbUtils.close(DbUtils.java:60)
at org.apache.commons.dbutils.AbstractQueryRunner.close(AbstractQueryRunner.java:438)
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:359)
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:307)
at com.iiover.dao.Dao.showOther(Dao.java:79)
at com.iiover.service.Service.otherShow(Service.java:49)
at com.iiover.web.otherList.doGet(otherList.java:26)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)DBCP类:
import java.sql.Connection;
import java.sql.SQLException;
import java.util.UUID;import javax.sql.DataSource;import org.apache.commons.dbcp.BasicDataSource;public class Untils { private static DataSource dataSource = null;
private static String dirverName = "com.mysql.jdbc.Driver"; private static String url = "jdbc:mysql://localhost:3306/help?useUnicode=true&characterEncoding=utf-8"; private static String username = "root";

private static String password = "000000";
  
public static String  uuid(){

return UUID.randomUUID().toString();
}

private static  DataSource getDatasourceImp() {

BasicDataSource basicDataSource = new BasicDataSource();

basicDataSource.setDriverClassName(dirverName);
basicDataSource.setUrl(url);

basicDataSource.setUsername(username);

basicDataSource.setPassword(password);

basicDataSource.setMaxActive(8);

basicDataSource.setMinIdle(2);

basicDataSource.setInitialSize(5);


return basicDataSource; }


public static DataSource getDataSource(){

if(dataSource==null){

return getDatasourceImp();  
}else{

return dataSource;
}
}

public static  Connection  getConnectin() throws SQLException{

 if(dataSource==null){
 
dataSource=getDatasourceImp();

return dataSource.getConnection();
  
 }else{
 return dataSource.getConnection(); 
 }

}
}
前端页面访问Web层
<a href="otherList"><span
class="glyphicon glyphicon-paperclip">其他问题类目</span>
</a>
web层
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List<Other> list = service.otherShow();
request.setAttribute("list", list);
request.getRequestDispatcher("otherList.jsp").forward(request, response);
}
service层
public List<Other> otherShow() {
// TODO Auto-generated method stub
return dao.showOther();
}
dao层
public List<Other> showOther() {
String sql = "select *  from other ORDER BY o_id DESC";
try {
return qr.query(sql, new BeanListHandler<Other>(Other.class));
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
这个问题怎么处理呢,请大牛们给小弟看一下,谢谢了