起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3255|回复: 15

[结贴] 200元悬赏贴,tomcat监听相关问题

  [复制链接]

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
发表于 2017-2-15 12:03:36 | 显示全部楼层 |阅读模式
本帖最后由 wgs7909 于 2017-2-15 15:26 编辑

情景描述:1、我自己实现了一个tomcat的监听类,在监听类里,在监听类里面调用了一个定时类,代码如下:
  1. public class CLContextListener implements ServletContextListener {
  2.         private Timer timer = null;
  3.         private static String path = System.getProperty("user.dir");
  4.         public void contextDestroyed(ServletContextEvent event) {
  5.        // 在这里关闭监听器,所以在这里销毁定时器。
  6.         timer.cancel();
  7.        event.getServletContext().log("定时器销毁");
  8.         }

  9.         public void contextInitialized(ServletContextEvent event) {
  10.                 // TODO 自动生成的方法存根
  11.                 // 在这里初始化监听器,在tomcat启动的时候监听器启动,可以在这里实现定时器功能
  12.                 timer = new Timer(true);
  13.                 event.getServletContext().log("定时器已启动");// JAVA定时执行任务(Tomcat 下的定时任务)
  14.                 timer.schedule(new GetWeightByCL(event.getServletContext()), 0, 5 * 1000);
  15.                 event.getServletContext().log("已经添加任务");
  16.                 ServletContext sc = event.getServletContext();
  17.                 System.out.println(sc.getContextPath()+sc.getServletContextName());// user.dir指定了当前的路径
  18.         }
复制代码
  1. public class GetWeightByCL extends TimerTask {
  2.         private static final String DATASOURCE_tenso = "tenso";
  3.         private static final String TABLE_userinfo = "userinfo";
  4.         private static final String TABLE_sendinfo = "imgdata";
  5.         private static String path = System.getProperty("user.dir");
  6.         public static void main(String[] args) throws WriteException, IOException {
  7.                 // // TODO 自动生成的方法存根
  8.                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  9.                 Table table = null;
  10.                 System.out.println(path);// user.dir指定了当前的路径
  11.         }

  12.         public GetWeightByCL(ServletContext context) {
  13.       System.out.println("构造函数 GetWeightByCL");
  14.         }

  15.         @Override
  16.         public void run() {
  17.                 // TODO 自动生成的方法存根
  18.                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
  19.                 String date = sdf.format(new Date());
  20.                 System.out.println(path);// user.dir指定了当前的路径
  21.                 System.out.println("this is run " + date);
  22.                 // 通过java提供的标准的jdbc连接方法,获取数据库的连接对象,再调用起步提供的query方法,查询数据库。
  23.                 String url = "jdbc:mysql://127.0.0.1:3306/tenso";
  24.                 String username = "root";
  25.                 String password = "x5";
  26.                 Connection conn = null;
  27.                 Table table = null;
  28.                 try {
  29.                         conn = DriverManager.getConnection(url, username, password);
  30.                         String sql = "SELECT * from sendinfo where ISNULL(weight) and ISNULL(bulk)";
  31.                         table = DataUtils.queryData(conn, sql, null, null, null, null);

  32.                         System.out.println(table.getRows().size());
  33.                 } catch (SQLException se) {
  34.                         System.out.println("数据库连接失败!");
  35.                         se.printStackTrace();
  36.                 } finally {
  37.                         try {
  38.                                 conn.close();
  39.                         } catch (SQLException e) {
  40.                                 // TODO 自动生成的 catch 块
  41.                                 e.printStackTrace();
  42.                         }
  43.                 }
  44.         }
复制代码

2、定时类里写了一个数据库连接查询方法,直接在定时类里写一个main方法,调用run()方法,正常运行查询。但是如果通过tomcat的监听类来调用它的话,就会报错。错误信息提示:因为没有找到mysql的连接类。这个错误原因我已经验证过了,我把WEB项目里的mysql-connector-java-5.1.36-bin.jar删除了,就会报同样的错误 。
3、谁能帮我解决这个问题,200元的微信红包,马上发过去。。。。


QQ截图20170215115028.jpg

评分

参与人数 1威望 +20 收起 理由
Masion + 20 仔细学习下,回头向你请教

查看全部评分

企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2017-2-15 14:03:33 | 显示全部楼层
在这个web应用的WEB-INF\lib中放数据库驱动包也不行吗?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
 楼主| 发表于 2017-2-15 15:24:58 | 显示全部楼层
jishuang 发表于 2017-2-15 14:03
在这个web应用的WEB-INF\lib中放数据库驱动包也不行吗?

不行
我在多个地方都放过,试过,
D:\X5\BeX5_V3.5\runtime\BaasServer\WEB-INF\lib  放在这里不行。
D:\X5\BeX5_V3.5\apache-tomcat\lib    这里也不行
D:\X5\BeX5_V3.5\java\jre1.8\lib   放在这里也不行
D:\X5\BeX5_V3.5\runtime\BusinessServer\WEB-INF\lib  放在这里也不行
企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2017-2-15 15:51:45 | 显示全部楼层
将jar数据库驱动包复制到java\jre1.8\lib\ext该文件夹中看看
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
 楼主| 发表于 2017-2-15 21:08:15 | 显示全部楼层
jishuang 发表于 2017-2-15 15:51
将jar数据库驱动包复制到java\jre1.8\lib\ext该文件夹中看看

谢谢管理员。你的方法真好用,解决了我的问题。谢谢,谢谢。
4楼的方法解决了此问题。
告诉我你的微信号吧!或是你加我的微信也可以,我的微信就是我的手机号。
企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667
回复 支持 反对

使用道具 举报

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
 楼主| 发表于 2017-2-16 07:36:33 | 显示全部楼层
jishuang 发表于 2017-2-15 15:51
将jar数据库驱动包复制到java\jre1.8\lib\ext该文件夹中看看

按您的指导,在测试机器上好用了,可是布署到服务器上,又开始报错。按之前的方法,把jar包copy到了各个可能用到的位置,依然报错。这是为什么呢????
企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2017-2-16 10:36:22 | 显示全部楼层
确认tomcat和mysql版本是否都一致
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
 楼主| 发表于 2017-2-16 11:08:29 | 显示全部楼层
jishuang 发表于 2017-2-16 10:36
确认tomcat和mysql版本是否都一致

完全一样的呀!
企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2017-2-16 11:32:19 | 显示全部楼层
在环境变量ClassPath中加上驱动看看
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
 楼主| 发表于 2017-2-16 16:46:25 | 显示全部楼层
jishuang 发表于 2017-2-16 11:32
在环境变量ClassPath中加上驱动看看

问题已经解决了,但是新的问题又来了。
在studio里运行tomcat好用,如果通过服务启动tomcat就报错了。这又是怎么回事呢?
企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-16 03:06 , Processed in 0.077288 second(s), 30 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表