问题摘要:

org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.microsoft.sqlserver.jdbc.SQLServerDriver '

原因:配置文件driverClassName后面多了一个空格。

其实一开始我并未注意到这个空格,只是按常规思路,先排查这个jar包是否存在。

没问题,运行是jar包是否正常加载,也正常。万分苦恼,最后无意中发现有个空格。

错误详细:

org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.microsoft.sqlserver.jdbc.SQLServerDriver '

at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80) ~[spring-jdbc-4.3.12.RELEASE.jar:4.3.12.RELEASE]

at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:342) ~[spring-jdbc-4.3.12.RELEASE.jar:4.3.12.RELEASE]

at org.springframework.boot.actuate.health.DataSourceHealthIndicator.getProduct(DataSourceHealthIndicator.java:123) ~[spring-boot-actuator-1.5.8.RELEASE.jar:1.5.8.RELEASE]

at org.springframework.boot.actuate.health.DataSourceHealthIndicator.doDataSourceHealthCheck(DataSourceHealthIndicator.java:105) ~[spring-boot-actuator-1.5.8.RELEASE.jar:1.5.8.RELEASE]

at org.springframework.boot.actuate.health.DataSourceHealthIndicator.doHealthCheck(DataSourceHealthIndicator.java:100) ~[spring-boot-actuator-1.5.8.RELEASE.jar:1.5.8.RELEASE]

at org.springframework.boot.actuate.health.AbstractHealthIndicator.health(AbstractHealthIndicator.java:43) ~[spring-boot-actuator-1.5.8.RELEASE.jar:1.5.8.RELEASE]

at org.springframework.boot.actuate.health.CompositeHealthIndicator.health(CompositeHealthIndicator.java:68) [spring-boot-actuator-1.5.8.RELEASE.jar:1.5.8.RELEASE]

at org.springframework.boot.actuate.health.CompositeHealthIndicator.health(CompositeHealthIndicator.java:68) [spring-boot-actuator-1.5.8.RELEASE.jar:1.5.8.RELEASE]

at org.springframework.boot.actuate.endpoint.HealthEndpoint.invoke(HealthEndpoint.java:85) [spring-boot-actuator-1.5.8.RELEASE.jar:1.5.8.RELEASE]

at org.springframework.boot.actuate.endpoint.HealthEndpoint.invoke(HealthEndpoint.java:35) [spring-boot-actuator-1.5.8.RELEASE.jar:1.5.8.RELEASE]

at org.springframework.boot.actuate.endpoint.jmx.DataEndpointMBean.getData(DataEndpointMBean.java:46) [spring-boot-actuator-1.5.8.RELEASE.jar:1.5.8.RELEASE]

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_141]

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_141]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_141]

at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_141]

at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71) [na:1.8.0_141]

at sun.reflect.GeneratedMethodAccessor69.invoke(Unknown Source) ~[na:na]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_141]

at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_141]

at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275) [na:1.8.0_141]

at javax.management.modelmbean.RequiredModelMBean$4.run(RequiredModelMBean.java:1252) [na:1.8.0_141]

at java.security.AccessController.doPrivileged(Native Method) [na:1.8.0_141]

at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) [na:1.8.0_141]

at javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1246) [na:1.8.0_141]

at javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:1085) [na:1.8.0_141]

at org.springframework.jmx.export.SpringModelMBean.invoke(SpringModelMBean.java:90) [spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE]

at javax.management.modelmbean.RequiredModelMBean.getAttribute(RequiredModelMBean.java:1562) [na:1.8.0_141]

at org.springframework.jmx.export.SpringModelMBean.getAttribute(SpringModelMBean.java:109) [spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE]

at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:647) [na:1.8.0_141]

at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:678) [na:1.8.0_141]

at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1445) [na:1.8.0_141]

at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76) [na:1.8.0_141]

at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309) [na:1.8.0_141]

at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1401) [na:1.8.0_141]

at javax.management.remote.rmi.RMIConnectionImpl.getAttribute(RMIConnectionImpl.java:639) [na:1.8.0_141]

at sun.reflect.GeneratedMethodAccessor50.invoke(Unknown Source) ~[na:na]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_141]

at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_141]

at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357) [na:1.8.0_141]

at sun.rmi.transport.Transport$1.run(Transport.java:200) [na:1.8.0_141]

at sun.rmi.transport.Transport$1.run(Transport.java:197) [na:1.8.0_141]

at java.security.AccessController.doPrivileged(Native Method) [na:1.8.0_141]

at sun.rmi.transport.Transport.serviceCall(Transport.java:196) [na:1.8.0_141]

at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568) [na:1.8.0_141]

at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826) [na:1.8.0_141]

at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683) [na:1.8.0_141]

at java.security.AccessController.doPrivileged(Native Method) [na:1.8.0_141]

at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682) [na:1.8.0_141]

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_141]

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_141]

at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_141]

Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.microsoft.sqlserver.jdbc.SQLServerDriver '

at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1429) ~[commons-dbcp-1.4.jar:1.4]

at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371) ~[commons-dbcp-1.4.jar:1.4]

at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) ~[commons-dbcp-1.4.jar:1.4]

at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111) ~[spring-jdbc-4.3.12.RELEASE.jar:4.3.12.RELEASE]

at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77) ~[spring-jdbc-4.3.12.RELEASE.jar:4.3.12.RELEASE]

... 50 common frames omitted

Caused by: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

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

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

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

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

at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1420) ~[commons-dbcp-1.4.jar:1.4]

最新文章

  1. Spring MVC学习笔记——完整的用户登录
  2. transform图形变化
  3. BaseAdapter日常的封装
  4. loadRunner 负载机连接错误分析
  5. 获取DLL的文件路径以及调用DLL的文件路径
  6. div a块状布局
  7. Python使用ctypes访问C代码
  8. curl访问nagios中Host Status Details For All Host Groups页面的方法
  9. 浅谈服务间通信【MQ在分布式系统中的使用场景】
  10. 安全性测试入门:DVWA系列研究(二):Command Injection命令行注入攻击和防御
  11. CodeForces 1151F Sonya and Informatics
  12. Unit 3.标签的分类和嵌套规则
  13. webstorm主要快捷键
  14. Hadoop 单表关联
  15. 使用EF+ASP.NET MVC+Bootstrap开发一个功能强大的问卷调查系统
  16. Python scikit-learn (metrics): difference between r2_score and explained_variance_score?
  17. [转载]js正则表达式/replace替换变量方法
  18. 2018年11月16日 我和SB交流有代沟-继续字符串4
  19. python测试开发django-40.模型(model)中choices使用
  20. OpenGL ES3 非常好的系列文章

热门文章

  1. idea搭spring boot项目
  2. spring boot报Unsupported Media Type Content type '*/*;charset=UTF-8' not supported
  3. Python 程序下载经办人照片
  4. 【FZSZ2017暑假提高组Day1】确定小组
  5. MySql:SELECT 语句(二)排序 ORDER BY 的使用
  6. R语言-散点图阵
  7. layer弹窗和日期
  8. Django_Form验证(二),ajax验证
  9. Lua中面向对象
  10. cmd与linux使用curl差异