- - PR -
Tomcat5.0.28とPostgreSQL8でDBCPでの値取得がうまくいかない
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-03-04 16:53
お世話になります。
下記の環境にて、DBCPを使用したDB接続&値の取得表示を行っておりますが、うまく動作しません。 Tomcat 5.0.28 PostgreSQL 8.0 Struts 1.2.4 JRE 1.4.6 JSTL 1.1.2 ----------------------- DBCPの動作確認用にtest.jspを作り、 実行するとDBへの接続はするものの値を取ってきません。 初めてDBCPを利用するので、どうしたらよいのか全くわかりません。 同じような経験をされ、解決した方はどうすれば良いのか ご教授していただけますと幸いです ----test.jsp---- <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <html> <head> <title>test</title> </head> <body> <sql:query var="rs" dataSource="jdbc/postgres"> SELECT member_id, member_name FROM member_master </sql:query> <c:forEach var="row" items="${rs.rows}"> <c:out value="${row.member_id}" /><br> <c:out value="${row.member_name}" /><br> </c:forEach> </body> </html> ----test.jsp(実行後)---- ${row.member_id} ${row.member_name} と表示されてしまいます。 DBCPの設定 ----[TOMCAT_HOME]/conf/Catalina/localhost/Test.xml <?xml version='1.0' encoding='utf-8'?> <Context crossContext="true" debug="5" docBase="D:/test00" path="/test00" reloadable="true" workDir="D:\test00\work"> <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="localhost_test00_log." suffix=".txt" timestamp="true"/> <Resource name="jdbc/postgres" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/postgres"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>driverClassName</name> <value>org.postgresql.Driver</value> </parameter> <parameter> <name>url</name> <value>jdbc:postgresql://localhost:5432/test</value> </parameter> <parameter> <name>username</name> <value>postgres</value> </parameter> <parameter> <name>password</name> <value>postgres</value> </parameter> <parameter> <name>maxActive</name> <value>20</value> </parameter> <parameter> <name>maxIdle</name> <value>10</value> </parameter> <parameter> <name>maxWait</name> <value>-1</value> </parameter> </ResourceParams> </Context> [ メッセージ編集済み 編集者: 未記入 編集日時 2005-03-04 16:55 ] |
|
投稿日時: 2005-03-04 17:08
DBCPの問題ですか?それともJSTLの問題ですか?
ぱっと見たところDBCPの問題ではないように見受けられます。 ・JSTLを使わず直にDataSourceからコネクションを取り出してクエリを投げたら動作するか ・DBCPを使わない場合に期待度通り動作するか ・そもそもデータベースを使わず変数に設定した値を使った場合期待通り動作するか といった点からまず切り分けてみてはいかがでしょうか。 また、直接関係ないとおもいますが JRE 1.4.6 って? #バージョンが変なのと、JRE ではく J2SDK(またはJDK)が必要です。 [ メッセージ編集済み 編集者: インギ 編集日時 2005-03-04 17:16 ] |
|
投稿日時: 2005-03-04 17:18
失礼致しました、JSTLで直接クエリを投げているのですね。
>・そもそもデータベースを使わず変数に設定した値を使った場合期待通り動作するか というのはちょっと的はずれでした。 まずは >・JSTLを使わず直にDataSourceからコネクションを取り出してクエリを投げたら動作するか からやるのがいいと思います。 |
|
投稿日時: 2005-03-04 19:14
web.xmlに記述されているバージョンが2.4になっていないのでは。
EL式がそのまま出力されていますよね。 jsp-examples/WEB-INF/web.xmlを参考にweb.xmlの設定をしてみてはいかがでしょうか。 |
|
投稿日時: 2005-03-04 22:05
皆様ありがとうございます。
>・JSTLを使わず直にDataSourceからコネクションを取り出してクエリを投げたら動作するかからやるのがいいと思います。 JSTLを使わずにクエリを投げたら動作しました。 JSTLが問題だったようです。 >web.xmlに記述されているバージョンが2.4になっていないのでは。 >EL式がそのまま出力されていますよね。 >jsp-examples/WEB-INF/web.xmlを参考にweb.xmlの設定をしてみてはいかがでしょうか。 web.xmlの記述を下記のように変更したらうまく動作しました。 皆様、有り難うございました。 -------変更前---- <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd"> <web-app> -------変更後---- <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <web-app> |
1