- ベストアンサー
EclipseでJSP→Mysql接続エラー
こんにちは。 EclipseもJavaも初心者ですが、学習本を頼りにJSPでMysqlに接続しようとしています。 <sql:setDataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/test" user="root" password="pass" var="office_dts" /> <sql:query var="office" dataSource="${office_dts}"> select * from office_tbl </sql:query> MysqlのtestDBのoffice_tblへ接続したいのですが、下記のエラーが出てしまいます。 DataSourceが無効ということは、url="jdbc:mysql://localhost/test" の部分が違うということでしょうか? また、パスワードは設定してみたのですが、以前からMySQLを使用するとき、パスワードの入力を求められたことがありません。 このあたりがおかしいのでしょうか? よろしくお願いいたします。 -------------------------------- javax.servlet.ServletException: DataSource が無効であるため、Connection を取得できません: "Invalid authorization specification, message from server: "Access denied for user: 'root@127.0.0.1' (Using password: YES)"" org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800) org.apache.jsp.OfficeList_jsp._jspService(OfficeList_jsp.java:80) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248) javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
Eclipseのバージョンが古すぎますね。 そのEclipseだとEclipseからのTomcatの起動は 出来の悪いSysdioTomcatプラグインがいるでしょう? 現在のEclipseの最新は3.42です。 これにはTomcat等を扱える機能が内臓されています。 eclipse3.42”Eclipise IDE for Java EE Developers” なお3.42にはいくつかの種類に分かれているが必ず ”Eclipise IDE for Java EE Developers” をDLすること。
その他の回答 (4)
- reiman
- ベストアンサー率62% (102/163)
サンプルに一般性がなかったので差し替え データベース名:auth ユーザ名:myuser パスワード:mypass テーブル:mytable <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page isELIgnored="false"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <sql:setDataSource var="ds" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/auth" user="myuser" password="mypass" /> <sql:query var="rs" dataSource="${ds}"> SELECT * FROM city </sql:query> <table border="1"> <tr> <c:forEach var="columnName" items="${rs.columnNames}"> <th><c:out value="${columnName}" /></th> </c:forEach> </tr> <c:forEach var="row" items="${rs.rowsByIndex}"> <tr> <c:forEach var="column" items="${row}"> <td><c:out value="${column}" /></td> </c:forEach> </tr> </c:forEach> </table> </body> </html>
- reiman
- ベストアンサー率62% (102/163)
環境の報告は? 解決方法は <%@ page isELIgnored="false"%> を配置すること。 サンプル: データベース名:auth ユーザ名:myuser パスワード:mypass テーブル:mytable <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page isELIgnored="false"%><!-- eclipseの場合これがデフォルトでtrue --> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <sql:setDataSource var="ds" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/auth" user="myuser" password="mypass" /> <sql:query var="rs" dataSource="${ds}"> SELECT * FROM mytable </sql:query> <table border="1"> <tr> <c:forEach var="columnName" items="${rs.columnNames}"> <th><c:out value="${columnName}" /></th> </c:forEach> </tr> <c:forEach var="row" items="${rs.rows}"> <tr> <td><c:out value="${row.country}" /></td> <td><c:out value="${row.capital}" /></td> </tr> </c:forEach> </table> </body> </html>
- reiman
- ベストアンサー率62% (102/163)
●使用OS及びバージョン 例えば FedoraCoreLinux10 ●MySQLのバージョン 例えば mysql Ver 14.12 Distrib 5.0.77, for redhat-linux-gnu (i386) using readline 5.1 ●JavaJDKのバージョン 例えば java version "1.6.0_13" Java(TM) SE Runtime Environment (build 1.6.0_13-b03) ●Tomcatのバージョン 例えば Server version: Apache Tomcat/6.0.18 ●Eclipseのバージョン 例えばeclipse3.42のEclipise IDE for Java EE Developers を書くように。
お礼
回答ありがとうございます。 OS: WindowsXP MySQL: version: 4.0.13 JavaJDK: jdk1.5.0_17 Tomcat : 5.0.16 Eclipse: 2.1.2 学習本のMySQLのバージョンは4.0.16ですが、指導に沿って下記を設定しても、再度立ち上げたときにパスワードを求められたりはしていません。 (cd c:\mysql\bin でそのまま使用できますが、これはユーザー名やパスワードが設定されていない状態なのでしょうか?) mysql -u root myql set password for root=PASSWORD('nikkei'); flush privileges; quit; 終了させて、cd c:\mysql\bin
- os6v100i
- ベストアンサー率44% (16/36)
MySQLは触ったことないので推測ですが >"Invalid authorization specification, message from server: "Access denied for user: 'root@127.0.0.1' (Using password: YES)"" 認証エラーのように見えますが、ユーザー名とパスワードはあっていますでしょうか?
お礼
回答ありがとうございます。 MySQLは今回の学習本以前から使用しており、その際、ユーザー名とパスワードの設定がなかったので、今回の学習本の指導に沿って設定したつもりなのですが、やはりcd c:\mysql\binと入力すると、そのまま使用できる状態です。 (パスワード等の入力をコマンドプロンプトから求められません) どうしてもダメであれば、使用しているMySQLをアンインストールして再度インストールしてやり直そうかとも思っています。
お礼
お礼が遅くなりました。 回答ありがとうございました。 皆さんの意見を参考にして、もう一度、学習本をよく読んでみます。