|
楼主 |
发表于 2017-2-18 11:12:04
|
显示全部楼层
本帖最后由 wgs7909 于 2017-2-18 13:47 编辑
从头到尾仔细看看大家的回复,再结合我的提问。仔细想想就明白了。先看一下我的情况:从tomcat启动起来后,每隔5分钟,需要查一下数据库。
在正常的baasService里,我们是通过 Connection conn = context.getConnection("demo"); 这个方法拿到数据库连接的。然后可以操作数据库。
可是为了实现每5分钟访问一次数据库这个功能,我写一个tomcat 监听类,在监听类里放了一个定时运行类,在这个定时运行类里我调用数据库操作。这里的数据库访问就需要用到原始的数据库访问方法。
- String url = "jdbc:mysql://127.0.0.1:3306/tenso";
- String username = "root";
- String password = "x5";
- Connection conn = null;
- Table table = null;
- try {
- conn = DriverManager.getConnection(url, username, password);
- String sql = "SELECT * from sendinfo where ISNULL(weight) and ISNULL(bulk)";
- table = DataUtils.queryData(conn, sql, null, null, null, null);
DriverManager.getConnection 这个方法需要用到mysql-connector-java-5.1.24-bin JAR包,关键问题就是程序运行的时候找不到这个JAR包,主要是JAR包放的位置不对。
1、正常情况下,web工程所有用到的类库都应该放在\runtime\BaasServer\WEB-INF\lib目录下面,然后在classPath文件里加入一条描述就可以了。可是这样不好用。报错,找不到类方法2、换个思路再想想,java在运行的时候查询类库路径应该是/java/lib目录,加上之后还是不好用
3、根据管理员的提示,把jar包复制到了D:\X5\BeX5_V3.5\java\jre1.8\lib\ext。好用了。但是问题又来了,现在的好用,只是在studio环境下启动tomcat好用,可是通过windows服务再启动tomcat的时候,还是会报错。这次就实在想不明白了。
4、但问题还是需要解决,经过几天的思考和尝试,终于找到原因了。因为我的服务器上安装了一个标准的java,通过windows服务启动tomcat的时候,调用的java就是调用的这个标准的java。因此虚拟机运行的时候查找类库的路径就是C:\Program Files (x86)\Java\jre1.8.0_111\lib\ext,在这里就当然找不到jar包了,所以把jar包复制到这里一份就解决问题了。
|
评分
-
查看全部评分
|