classloader java 424_java – SpringBoot loader.path无法加载外部Jar

我正在使用springboot作为webapp,我正在尝试设置一个外部目录,该目录将包含最终用户可能选择使用的各种JDBC驱动程序.要做到这一点,我补充说:

loader.path=/opt/myapp/lib/

到我的application.properties文件,这是由PropertySourcesPropertyResolver选取的

2016-04-28 17:27:38.739 DEBUG 22539 --- [restartedMain] o.s.c.e.PropertySourcesPropertyResolver : Found key 'loader.path' in [applicationConfigurationProperties] with type [String] and value '/opt/myapp/lib/'

我的问题是我似乎无法从任何放入此目录的jar中加载任何JDBC驱动程序,我缺少什么?我正在使用默认的嵌入式tomcat服务器.当我尝试使用Class.forName加载驱动程序时,我得到以下内容,就像该目录中不存在jar.

public Connection buildConnection(DataSource dataSource) throws ClassNotFoundException, SQLException {

if (dataSource == null) {

throw new NullPointerException("Data Source is null!");

}

if (!dataSource.isReady()) {

throw new IllegalArgumentException("Data Source is reporting that it is not ready!");

}

logger.debug("Loading JDBC Driver: {}", dataSource.getDriverClass());

Class.forName(dataSource.getDriverClass());

logger.debug("Loaded Driver: {}", dataSource.getDriverClass());

logger.debug("Attempting to build connection using: {}", dataSource.getConnectionString());

DriverManager.setLoginTimeout(10);

Connection c = DriverManager.getConnection(dataSource.getConnectionString(), dataSource.getUserName(), dataSource.getPassword());

if (c != null) {

c.setAutoCommit(true);

c.setReadOnly(true);

return c;

}

throw new NullPointerException("Unable to create connection!");

}

这是抛出的异常

2016-04-28 17:38:53.525 DEBUG 22539 --- [nio-8081-exec-5] c.c.reportout.processor.JobProcessor : Loading JDBC Driver: com.mysql.jdbc.Driver

2016-04-28 17:38:53.526 WARN 22539 --- [nio-8081-exec-5] c.c.reportout.processor.JobProcessor : Unable to successfully test connection: com.mysql.jdbc.Driver

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_91]

at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_91]

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_91]

at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_91]

at org.springframework.boot.devtools.restart.classloader.RestartClassLoader.loadClass(RestartClassLoader.java:151) ~[spring-boot-devtools-1.3.3.RELEASE.jar:1.3.3.RELEASE]

at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_91]

at java.lang.Class.forName0(Native Method) ~[na:1.8.0_91]

at java.lang.Class.forName(Class.java:264) ~[na:1.8.0_91]

关于如何调试这个或我做错了的任何指针?

谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值