- - PR -
Torque3.1の使い方
1|2|3
次のページへ»
| 投稿者 | 投稿内容 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-10-28 13:30
お世話になっております、TKです。struts1.1 + Tomcat4.0 + Torque3.0.2で
WEB系システムの開発をしております。 現在使用しているversionのTorqueにはバグがあり、 3.1に上げようと考えております。 Torqueはversionが、3.1になってから ソース生成部とランタイム部にパッケージが分かれています。 ソースの生成は以前のバージョンと同様な方法でできました。 しかし、「オーバーライトすべきでないメソッドをオーバーライトしてます」 というWarningがでます。 また、ランタイム版の配置がよくわかりません。解凍して得られたlib内のパッケージ にパスを通してコンパイルできましたが、各種設定ファイルの配置が悪い らしく、データアクセスできません。特に、新たに追加された二つのファイル componentConfiguration.xml、roleConfiguration.xmlの意味がよくわかりません。 どなたか、Torque3.1を利用されている方、ご教授ください。 よろしくお願いします。 | ||||||||||||
|
投稿日時: 2003-10-28 15:06
こんにちは。
具体的にはどのメソッドでしょうか。 コンパイル時のワーニングメッセージを示した方が いいように思います。
どのような環境で実行しようとしているのでしょうか。 また、実行時の詳細なエラー内容を示した方がいいように思います。
私もこのファイルについての役割を知らないのですが、 特に設定する必要はないように思います。 実行時に設定するファイルはTorque.propertiesだけ でよいと思います。 | ||||||||||||
|
投稿日時: 2003-10-28 16:12
とまとさん、返答ありがとうございます。
詳細については調査中ですが、今のところご報告できることに ついて報告させていただきます。 まずは、コンパイル時のワーニングメッセージですが、 「特定のメソッドについては記述されず」文字通り、antのログで 「オーバライトすべきでないメソッドまたはAPIをオーバーライドしています」 とでます。特に、何を示すかは調査中です。 環境としましては、eclipseを使用しているのですが、WEB-INF/srcの下の適当な コンポーネント以下に、generatorで作成したソースを配置し、 WEB-INF/lib以下に、Torque3.1のruntimeパッケージを解凍してえられたlib 以下のjarファイルおよび、torque-gen-3.1.jar、 oracleのドライバーを全てパスに加えています。 また、PluginでTorque.initを行っているのですが、ログを見ると「initTorqueClassic」 という古めかしさをあらわすような(笑)メッセージが出ています。 また、実行時のエラーですが、 java.lang.NoSuchMethodError: org.apache.torque.util.Criteria.getSelectColumns()Lorg/apache/torque/util/UniqueList; at xxx.torque.BaseTblAAAPeer.doSelectVillageRecords(BaseTblAAAPeer.java:354) at xxx.torque.BaseTblAAAPeer.doSelectVillageRecords(BaseTblAAAPeer.java:340) at xxx.torque.BaseTblAAAPeer.doSelect(BaseTblAAAPeer.java:308) at xxx.data.getAAA.(AAA.java:32) at xxx.data.getAAA.getInstance(AAA.java:42) at xxx.plugin.InitTorquePlugIn.init(InitTorquePlugIn.java:42) となっており、pluginでTorque.initのあと初めてDBにアクセスする個所(下参照) でエラーとなっています。 Criteria whrc = new Criteria(); //whrcには何もセットせず List selectList = TblAAAPeer.doSelect(whrc); ←ここで落ちてます。 ソースは全くいじってないのですが・・・、No Such Method...たとえば、 whrcに何もセットしないのがいけなかったりするのでしょうか? 引き続き検証します。 | ||||||||||||
|
投稿日時: 2003-10-28 18:05
TKです。追記報告をします。
生成時にオーバーライトの警告がでていたのは、 Base〜Peer.javaのpublic static MapBuilder getMapBuilder()でした。 また、 http://www.mail-archive.com/torque-user@db.apache.org/msg01016.html と同じ現象のようです。解決はされていないようでした。 どなたが、同じ現象に遭遇した方いらっしゃらないでしょうか。 お願いします。 | ||||||||||||
|
投稿日時: 2003-10-28 19:53
こんばんは。
全件検索しようとするときに限って(空のCriteriaを指定した場合のみ) 発生するのでしょうか。 また、データベースも同じMySQLでしょうか。 ちなみに、Oracle8i 8.1.7で全件検索を含むその他様々な検索処理を 行ってみましたが、このようなエラーは発生しませんでした。 | ||||||||||||
|
投稿日時: 2003-10-29 16:07
TKです。とまとさん返答が遅れてすみません。
データベースはoracle9iを使用しています。 エラーの発生は、Criteriaに関係なく最初にデータベースにアクセスするところで下記同様のエラーで落ちます。 以下にTorque.propetiesの内容を記載します。これは、 Torque3.0.2で正常に動いていたものです。 torque.dsfactory.XXX.factory=org.apache.torque.dsfactory.TorqueDataSourceFactory torque.dsfactory.XXX.pool.defaultMaxConnections=10 torque.dsfactory.XXX.pool.maxExpiryTime=3600 torque.dsfactory.XXX.pool.connectionWaitTimeout=10 torque.dsfactory.XXX.connection.driver = oracle.jdbc.driver.OracleDriver torque.dsfactory.XXX.connection.url = jdbc:oracle:thin:@localhost:1521:XXX torque.dsfactory.XXX.connection.user = user torque.dsfactory.XXX.connection.password = pwd ちなみに、これまた3.0.2では正常に動いたものですが、commons-dbcpを代わりに使用すると、別のエラー(下記)で落ちます。 java.lang.NoSuchMethodError: org.apache.torque.dsfactory.AbstractDataSourceFactory.initCPDS(Lorg/apache/commons/configuration/Configuration;)Ljavax/sql/ConnectionPoolDataSource; at org.apache.torque.dsfactory.SharedPoolDataSourceFactory.initialize(SharedPoolDataSourceFactory.java:109) at org.apache.torque.Torque.initDataSourceFactories(Torque.java:323) at org.apache.torque.Torque.initialize(Torque.java:237) at org.apache.torque.Torque.init(Torque.java:406) クラスパスにあるlibraryは以下の通りです。 avalon-framework-4.1.4.jar classes12.jar commons-beanutils-1.6.1.jar commons-collections-2.1.jar commons-configuration-1.0-dev-3.20030607.194155.jar commons-dbcp-20030825.184428.jar commons-digester.jar commons-fileupload.jar commons-lang-1.0.1.jar commons-logging-1.0.3.jar commons-pool-20030825.183949.jar commons-resources.jar commons-validator.jar jakarta-oro.jar jakarta-regexp-1.3.jar jcs-20030822.182132.jar jdbc-2.0.jar jndi-1.2.1.jar junit-3.8.1.jar log4j-1.2.8.jar logkit-1.0.1.jar stratum-1.0-b3.jar struts.jar torque-3.1.jar village-2.0-dev-20030825.jar xercesImpl-2.0.2.jar cmlParserAPIs-2.0.2.jar 些細な情報でもいいので、Torque3.1を使用しているかたの情報をお待ちしています。 | ||||||||||||
|
投稿日時: 2003-10-29 20:52
こんばんは
時間が取れないので、簡単なコメントだけ。 1.次の環境でTorque3.1でデータベースをSELECTすることが できました。 単純なStandaloneプログラムとして実行しました。 JSDK1.4.2 Torque3.1 Oracle9.2.0 JDBC Driver(ojdbc14.jar) torque.dsfactory.xxxx.factory=org.apache.torque.dsfactory.SharedPoolDataSourceFactory 2.
Torque.propertiesファイルのコメントを見ると、 「TorqueDataSourceFactoryはバグがあり、推奨されない。 commons-dbcpを使うべき。」 とありますね。 commons-dbcpを使用した場合のこのエラーは、 SELECTを発行するときではなく、 Torqueの初期化時に発生しているということですよね? 必要なJarファイルはクラスパスに追加されていると 思いますので、そうなるとTorque.propertiesファイルの 設定が気になりますね。 以上です。 | ||||||||||||
|
投稿日時: 2003-10-30 11:41
こんにちは、TKです。とまとさんの環境と比べてみまして、
jdbcドライバーのバージョンが違うことに気が付きました。 そこで、それを変更後のエラー(笑)です。 java.lang.NoSuchMethodError: org.apache.torque.dsfactory.AbstractDataSourceFactory.initCPDS(Lorg/apache/commons/configuration/Configuration;)Ljavax/sql/ConnectionPoolDataSource; at org.apache.torque.dsfactory.SharedPoolDataSourceFactory.initialize(SharedPoolDataSourceFactory.java:109) at org.apache.torque.Torque.initDataSourceFactories(Torque.java:323) at org.apache.torque.Torque.initialize(Torque.java:237) at org.apache.torque.Torque.init(Torque.java:406) at com.accenture.stpip.plugin.InitTorquePlugIn.init(InitTorquePlugIn.java:38) at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:1105) at org.apache.struts.action.ActionServlet.init(ActionServlet.java:468) 該当するメソッドは確かにtorque-3.1.jarの該当クラス内に存在しました。 なお、Torque.propertiesですが。 ## Using commons-dbcp torque.dsfactory.XXX.factory=org.apache.torque.dsfactory.SharedPoolDataSourceFactory torque.dsfactory.XXX.pool.defaultMaxActive=10 torque.dsfactory.XXX.pool.testOnBorrow=false torque.dsfactory.XXX.pool.validationQuery=SELECT 1 FROM DUAL torque.dsfactory.XXX.connection.driver = oracle.jdbc.driver.OracleDriver torque.dsfactory.XXX.connection.url = jdbc:oracle:thin:@localhost:1521:XXX torque.dsfactory.XXX.connection.user = user torque.dsfactory.XXX.connection.password = pwd となっております。 はまってます・・、よろしくお願いします。 | ||||||||||||
1|2|3
次のページへ»
