2017-11-25 25 views
-1

私はSpringアプリケーションを実行するためにEclipseでTomcat 9を使用するSpring MVC初心者です。実行時に次のエラーが表示されます。JDBCドライバクラス 'com.mysql.cj.jdbc.driver'をロードできません。

org.apache.jasper.JasperException: An exception occurred processing JSP page [/WEB-INF/views/listOrganization1.jsp] at line [13] 

    10: </head> 
    11: <body> 
    12:  <h1>Listing organizations using JSTL SQL tag</h1> 
    13:  <sql:query var="rs" dataSource="jdbc/springdb"> 
    14:   SELECT * FROM organization 
    15:  </sql:query> 
    16:  


    Stacktrace: 
     org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:588) 
     org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466) 
     org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385) 
     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329) 
     javax.servlet.http.HttpServlet.service(HttpServlet.java:742) 
     org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 
     org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:170) 
     org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:314) 
     org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1325) 
     org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1069) 
     org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1008) 
     org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925) 
     org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978) 
     org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:870) 
     javax.servlet.http.HttpServlet.service(HttpServlet.java:635) 
     org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:855) 
     javax.servlet.http.HttpServlet.service(HttpServlet.java:742) 
     org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 


    Root Cause 
    javax.servlet.ServletException: javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "java.sql.SQLException: Cannot load JDBC driver class 'com.mysql.cj.jdbc.driver'" 
     org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:669) 
     org.apache.jsp.WEB_002dINF.views.listOrganization1_jsp._jspService(listOrganization1_jsp.java:156) 
     org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
     javax.servlet.http.HttpServlet.service(HttpServlet.java:742) 
     org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443) 
     org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385) 
     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329) 
     javax.servlet.http.HttpServlet.service(HttpServlet.java:742) 
     org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 
     org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:170) 
     org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:314) 
     org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1325) 
     org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1069) 
     org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1008) 
     org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925) 
     org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978) 
     org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:870) 
     javax.servlet.http.HttpServlet.service(HttpServlet.java:635) 
     org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:855) 
     javax.servlet.http.HttpServlet.service(HttpServlet.java:742) 
     org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 


    Root Cause 
    javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "java.sql.SQLException: Cannot load JDBC driver class 'com.mysql.cj.jdbc.driver'" 
     org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.getConnection(QueryTagSupport.java:285) 
     org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.doStartTag(QueryTagSupport.java:168) 
     org.apache.jsp.WEB_002dINF.views.listOrganization1_jsp._jspx_meth_sql_005fquery_005f0(listOrganization1_jsp.java:180) 
     org.apache.jsp.WEB_002dINF.views.listOrganization1_jsp._jspService(listOrganization1_jsp.java:135) 
     org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
     javax.servlet.http.HttpServlet.service(HttpServlet.java:742) 
     org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443) 
     org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385) 
     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329) 
     javax.servlet.http.HttpServlet.service(HttpServlet.java:742) 
     org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 
     org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:170) 
     org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:314) 
     org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1325) 
     org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1069) 
     org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1008) 
     org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925) 
     org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978) 
     org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:870) 
     javax.servlet.http.HttpServlet.service(HttpServlet.java:635) 
     org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:855) 
     javax.servlet.http.HttpServlet.service(HttpServlet.java:742) 
     org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 

しかし、すでにmysql-connector-java-6.0.6.jar Tomcatがすでにリソース

<?xml version="1.0" encoding="UTF-8"?> 
<!-- 
    Licensed to the Apache Software Foundation (ASF) under one or more 
    contributor license agreements. See the NOTICE file distributed with 
    this work for additional information regarding copyright ownership. 
    The ASF licenses this file to You under the Apache License, Version 2.0 
    (the "License"); you may not use this file except in compliance with 
    the License. You may obtain a copy of the License at 

     http://www.apache.org/licenses/LICENSE-2.0 

    Unless required by applicable law or agreed to in writing, software 
    distributed under the License is distributed on an "AS IS" BASIS, 
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
    See the License for the specific language governing permissions and 
    limitations under the License. 
--><!-- The contents of this file will be loaded for each web application --><Context> 

    <!-- Default set of monitored resources. If one of these changes, the --> 
    <!-- web application will be reloaded.         --> 
    <WatchedResource>WEB-INF/web.xml</WatchedResource> 
    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource> 

    <!-- Uncomment this to disable session persistence across Tomcat restarts --> 
    <!-- 
    <Manager pathname="" /> 
    --> 

    <Resource name="jdbc/springdb" auth="Container" type="javax.sql.DataSource" 
       maxTotal="100" maxIdle="30" maxWaitMillis="10000" 
       username="devuser" password="$Data4Dev" driverClassName="com.mysql.cj.jdbc.driver" 
       url="jdbc:mysql://localhost:3306/spring_db?useSSL=false"/> 

</Context> 

としてデータベース情報を持っているためにMavenの依存

enter image description here

とのcontext.xmlを持っているとして、プロジェクトに存在しますここでの別の質問に対する回答として、mysql-connector jarを実行時設定に追加しました。 Tomcat 9サーバー。 enter image description here

また、C:\ Users \ user1.m2 \ repositoryのリポジトリを複数回削除してEclipseを閉じてプロジェクトを更新しました。何も問題なく、同じエラーが発生します。

+4

'com.mysql.cj.jdbc.driver'の最後に' driver'の 'd'を大文字にしてみてください。 –

+1

MySQL Connector/J 6.0.6は使用しないでください。 **放棄されたConnector/J 6ブランチ(まだリリースされていないConnector/J 8開発ブランチに続いています)の開発/テストバージョンです。 MySQLの最新バージョンはまだ5.1.44 –

+2

です。また、sqlタグライブラリは決して使用しないでください。ビューの内部からSQLクエリを実行している場合、MVCの全体的なポイントが実際には分かりません。コントローラはデータベースからデータを取得し、モデルに格納し、モデルにあるデータを表示するビューに制御を渡します。これがMVCの基本原則です。 –

答えて

0

これは、Luke Woodwardによって提案された変更を加えることで修正されました。

関連する問題