MySQL驱动时不时报错

qq_32450901 2016-05-24 03:41:12
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/huanwei?characterEncoding=UTF8
at java.sql.DriverManager.getConnection(DriverManager.java:596)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at com.galaxylab.huanwei.dao.GenericDAO.getConnection(GenericDAO.java:37)
at com.galaxylab.huanwei.dao.GenericDAO.executeQuery(GenericDAO.java:49)
at com.galaxylab.huanwei.dao.TokenDAO.getToken(TokenDAO.java:16)
at com.galaxylab.huanwei.service.TokenRefresher.run(AccessTokenGenerationService.java:50)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
2016-05-24 15:35:56,639 [ERROR] [pool-3-thread-1:4802146][com.galaxylab.huanwei.service.TokenRefresher] - Exception
java.lang.NullPointerException
at com.galaxylab.huanwei.dao.TokenDAO.getToken(TokenDAO.java:17)
at com.galaxylab.huanwei.service.TokenRefresher.run(AccessTokenGenerationService.java:50)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)





这一段错误时不时的会报出来,但是又找不到原因,程序又能正常运行,请高手指教指教,怎么下手处理这个异常

这是我的一个定时线程进入的DAO

package com.galaxylab.huanwei.service;

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

import org.joda.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.galaxylab.huanwei.dao.TokenDAO;
import com.galaxylab.huanwei.domain.Token;
import com.galaxylab.huanwei.dto.GetTokenResponse;
import com.galaxylab.huanwei.jdbc.CommonConfig;
import com.galaxylab.huanwei.util.HttpUtil;
import com.google.gson.Gson;


public class AccessTokenGenerationService {

private final ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);

private final Logger logger = LoggerFactory.getLogger(getClass());

public AccessTokenGenerationService() {}

public void start() {
Runnable task = new TokenRefresher();
logger.info("Start AccessTokenGenerationService()");
scheduledExecutorService.scheduleWithFixedDelay(task, 0, 600,TimeUnit.SECONDS);
}


}

class TokenRefresher implements Runnable{

private final TokenDAO tokenDAO = new TokenDAO();

private final long GRACE_PERIOD = 1800000;

private final Logger logger = LoggerFactory.getLogger(getClass());

public Gson gson = new Gson();

@SuppressWarnings("static-access")
@Override
public void run() {
try{
Token token = tokenDAO.getToken();

logger.info("latest token is {}",token);

if(token.getGoodUntil().getMillis() - DateTime.now().getMillis() < GRACE_PERIOD) {
logger.info("Start getting new token");

String url = CommonConfig.WECHAT_ACCESS_TOKEN_SERVICE_URL
.replace("APPID", CommonConfig.WECHAT_APP_ID)
.replace("APPSECRET", CommonConfig.WECHAT_SECURITY_KEY);

logger.info("URL is {}",url);

String response = HttpUtil.get(url);

GetTokenResponse getTokenResponse = gson.fromJson(response, GetTokenResponse.class);

Token new_token = new Token(getTokenResponse.getAccess_token(),
new DateTime().now().plusSeconds(Integer.valueOf(getTokenResponse.getExpires_in())));

tokenDAO.updataToken(new_token);
}
}catch(Exception e) {
logger.error("Exception",e);
}
}
}
...全文
106 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Nnick_s 2016-05-25
  • 打赏
  • 举报
回复
TokenDAO 里面代码是不是有问题
tianfang 2016-05-25
  • 打赏
  • 举报
回复
项目引用的mysql驱动可能比较旧 更新一下试试
迷林 2016-05-25
  • 打赏
  • 举报
回复
看来楼主已经找到答案了 赶紧结贴吧
qq_32450901 2016-05-25
  • 打赏
  • 举报
回复
引用 3 楼 qq_31417619 的回复:
TokenDAO 里面代码是不是有问题
DAO代码就一条sql,没有太多复职的代码。 原来是我把jar包粘贴进去没引入包,现在似乎不报这个错了。非常感谢
qq_32450901 2016-05-25
  • 打赏
  • 举报
回复
引用 2 楼 tianfang 的回复:
项目引用的mysql驱动可能比较旧 更新一下试试
原来是我把jar包粘贴进去没引入包,现在似乎不报这个错了。非常感谢
qq_32450901 2016-05-25
  • 打赏
  • 举报
回复
引用 1 楼 qwer_boo 的回复:
帮你顶一下~
非常感谢
  • 打赏
  • 举报
回复
java.lang.NullPointerException at com.galaxylab.huanwei.dao.TokenDAO.getToken(TokenDAO.java:17) 看看这里是啥

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧