最速怪談選手権

こんにちは。
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)

A 回答 (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すること。
    • good
    • 0
この回答へのお礼

お礼が遅くなりました。
回答ありがとうございました。
皆さんの意見を参考にして、もう一度、学習本をよく読んでみます。

お礼日時:2009/05/14 08:58

サンプルに一般性がなかったので差し替え



データベース名: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>
    • good
    • 0

環境の報告は?



解決方法は
<%@ 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>
    • good
    • 0

●使用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

を書くように。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

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

お礼日時:2009/04/24 09:38

MySQLは触ったことないので推測ですが


>"Invalid authorization specification, message from server: "Access denied for user: 'root@127.0.0.1' (Using password: YES)""
認証エラーのように見えますが、ユーザー名とパスワードはあっていますでしょうか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

MySQLは今回の学習本以前から使用しており、その際、ユーザー名とパスワードの設定がなかったので、今回の学習本の指導に沿って設定したつもりなのですが、やはりcd c:\mysql\binと入力すると、そのまま使用できる状態です。
(パスワード等の入力をコマンドプロンプトから求められません)

どうしてもダメであれば、使用しているMySQLをアンインストールして再度インストールしてやり直そうかとも思っています。

お礼日時:2009/04/24 09:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!