- PR -

struts データソース

1
投稿者投稿内容
よし
会議室デビュー日: 2005/04/06
投稿数: 11
投稿日時: 2006-03-29 11:38
現在データベースソースを以下のように使っています。

struts-config.xml
<data-sources>
<!-- BasicDataSourceクラスを利用する -->
<data-source type="org.apache.commons.dbcp.BasicDataSource">
<!-- JDBCドライバクラス名の設定 -->
<set-property property="driverClassName" value="com.mysql.jdbc.Driver" />
<!-- JDBCの接続文字列の設定 -->
<set-property property="url" value="jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=SJIS" />
<!-- MySQLのユーザIDの設定 -->
<set-property property="username" value="root" />
<!-- MySQLのパスワードの設定 -->
<set-property property="password" value="root" />
</data-source>
</data-sources>

web.xml
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/test</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

test.java

private DataSource source;
Context ic = new InitialContext() ;
source = (DataSource)ic.lookup("java:comp/env/jdbc/test");
Connection conn = source.getConnection();

以上のように、ソース→web.xml→struts-config.xmlという流れでそれぞれの中身を読んでいます。

この方法ではなく、ソース→struts-config.xmlを直接呼び出す方法はないでしょうか?
ソースをきれいに書く方法やアドバイスがありましたら、よろしくお願いいたします。

[ メッセージ編集済み 編集者: よし 編集日時 2006-03-29 11:43 ]
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-03-29 12:29
公式サイトのデータソースに関する説明
http://struts.apache.org/struts-doc-1.2.4/faqs/database.html

Strutsが提供しているデータソース機能は現在推奨されていません。
サーブレットコンテナ等のデータソースを使用すべきです。
どのみち両方が使用可能ですが、両方を設定する意味はないでしょう。
よし
会議室デビュー日: 2005/04/06
投稿数: 11
投稿日時: 2006-03-30 13:27
返信が遅くなりまして、すみませんでした。
アドバイスありがとうございます。

現在、struts1.1 tomcat4系で作ったアプリケーションを
tomcat5.5にして今までデータベースソースを使っていなかったソースに
データソースを組み込もうとしています。

しかし、tomcat起動時に以下のようなメッセージが出て、データソースを利用することができません。
2006/00/00 00:00:00 org.apache.commons.modeler.Registry registerComponent
致命的: Null component Catalina:type=DataSource,path=/test,host=localhost,class=javax.sql.DataSource,name="jdbc/MySQL"

現在の環境情報
jre1.50_05 tomcat5.5 struts1.0

web.xml
<?xml version="1.0" encoding="Shift_JIS"?>
<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">
<resource-ref>
<res-ref-name>jdbc/MySQL</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>

自分で作ったlocalhost内のserver.xml(test.xml)
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="C:/Program Files/eclipse/workspace/test" path="/test" workDir="C:\eclipse\workspace\test\work">
<Resource name="jdbc/MySQL" auth="Container" type="javax.sql.DataSource"
username="root" password="admin" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=SJIS"/>
</Context>

struts-config.xml
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>

</struts-config>

test.xmlに関しては、tomocat5系の書き方に沿ってデータベースソースを書きました。
また、別のプロジェクトでstrutsを使わす同じ設定でjspからデータは所得できています。
そのほかにも、server.xmlの中にデータベースソースを書き、
test.xmlでリンクをはってもうまくデータベースソースを所得できません。

これは、バージョンによるものなのでしょうか?
書き方がまずいのでしょうか?
本当に困っています。アドバイスよろしくお願いいたします。

[ メッセージ編集済み 編集者: よし 編集日時 2006-04-12 16:35 ]
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-03-30 19:43
テーマが代わりましたね。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=29537&forum=12&8
このスレッドが参考になるでしょうか。
1

スキルアップ/キャリアアップ(JOB@IT)