我的Spring服务器可以很好地使用“初学者-父级”pom。问题是,如果可能的话,我宁愿不使用spring pom作为家长。但是,当我只包含spring启动依赖项pom (如描述的这里)时,我最终没有加载驱动程序:
18:14:26.127 [localhost-startStop-1] WARN o.a.t.jdbc.pool.PooledConnection - Not loading a JDBC driver as driverClassName property is null.
18:14:26.147 [localhost-startStop-1] ERROR o.a.tomcat.jdbc.pool.ConnectionPool - Unable to create initial connections of pool.
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/mydb
at java.sql.DriverManager.getConnection(DriverManager.java:689) ~[na:1.8.0_45]
at java.sql.DriverManager.getConnection(DriverManager.java:208) ~[na:1.8.0_45]
at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:305) ~[tomcat-jdbc-8.0.23.jar:na]
at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:200) ~[tomcat-jdbc-8.0.23.jar:na]
...
我很确定这与驱动程序没有被DriverManager & ServiceLoader位加载有关,但我不知道如何强制这样做。如有任何建议,将不胜感激。
FWIW:如果我尝试'Class.forName()‘MySQL jdbc驱动程序,我实际上会得到一个'NoClassDefFoundError',这令人费解,因为mysql-连接器肯定在我的pom中。多类装载机什么的?
发布于 2015-07-17 10:42:56
我相信,我的问题与maven是如何导入和继承依赖关系、由我公司的父pom提供的依赖项以及随spring引导而来的依赖项有关。我无法真正解释它,但如果我注释掉父pom的依赖关系管理部分,一切似乎都是正确的。这肯定是某种神秘的maven行为,但目前我正致力于分离我们的父pom的依赖管理和插件配置方面。这样我就可以继承插件配置,而不是依赖管理。
(谢谢你的帮助:)
https://stackoverflow.com/questions/31395699
复制