- PR -

Strutsでvalidatorが動かせません

1
投稿者投稿内容
kuro
会議室デビュー日: 2007/04/20
投稿数: 3
投稿日時: 2007-04-20 16:57
kuroと言います。
現在、Webアプリの構築を行うため、Strutsを学習しているのですが、
validatorで詰まってしまいました。すべてがはじめてなので、もしかしたら
的外れな事を言っているかもしれません。。。

環境は下記のとおりです。
jdk:1.5.0.11
Eclipse:3.2
Tomcat:5.5.23
Struts:1.2.9
commons-validator:1.3.1

struts-configの設定などを行い実行したところ、下記のエラーがでました。

致命的: StandardWrapper.Throwable
java.lang.NoClassDefFoundError: org/apache/commons/validator/ValidatorResourcesInitializer




確かに、commons-validator.jarを展開してみると、
ValidatorResourcesInitializerクラスが存在していないのです。

ValidatorResourcesInitializerで検索してみたのですが、ほとんど情報がありません。
一応、下記のページを見るとValidatorResourcesInitializerというクラスはどこかに
存在しているようなのですが、私の環境には存在しておらず困っています。

http://www.jajakarta.org/commons/validator-1.0.2/ja/withPrimary/org/apache/commons/validator/ValidatorResourcesInitializer.html

ご存知の方がいらっしゃいましたら、お願い致します。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-04-20 17:36
本来Struts1.2.9に付属しているCommons Validatorのバージョンは1.1.4のはずです。
そこに含まれているクラスを利用するコードになっているので、
java.lang.NoClassDefFoundErrorがスローされている状態です。

何故オリジナルを使わずに、外部からバージョンの合わないValidatorを導入したのでしょうか?
kuro
会議室デビュー日: 2007/04/20
投稿数: 3
投稿日時: 2007-04-20 18:05
>>かつのりさん
ありがとうございます。

Strutsとcommons-validatorは正しいバージョンの対応でないと駄目なのですね。
なぜ外部から導入したのかですが、現在DBとの接続にcommons-dbcp.jarなどを
使っているのですが、これらと同じようにcommons-validator.jarもDLしてくる
のだと思っていました。

おかげさまで、Struts1.2.9に付属のcommons-validatorを使用することで、
前述のjava.lang.NoClassDefFoundErrorは解消されました。

ところが今度は、
2007/04/20 17:45:35 org.apache.struts.validator.ValidatorPlugIn initResources
情報: Loading validation rules file from '/WEB-INF/validator-rules.xml'
2007/04/20 17:45:58 org.apache.struts.validator.ValidatorPlugIn initResources
致命的: Connection timed out: connect
java.net.ConnectException: Connection timed out: connect
と、タイムアウトになってしまいました。

もしかしてvalidator-rules.xmlか、validation.xmlあたりの設定が
間違っているという事なのでしょうか・・・?



かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-04-21 00:38
xmlに外部のDTDのアドレスが記述されていませんか?
ネットに繋がらない環境でDTDの解決をネット経由で行おうとして、
失敗している気がしますが、スタックトレースを見ないと何とも言えませんね。

追記:
DTDの場合Jarに含まれるDTDファイルとかでも解決できるので、
Commons Validatorのコードを見ないと分からないですね。。。

[ メッセージ編集済み 編集者: かつのり 編集日時 2007-04-21 00:40 ]
kuro
会議室デビュー日: 2007/04/20
投稿数: 3
投稿日時: 2007-04-26 10:26
ここ最近別作業で手がつけられませんでした。

かつのりさんの言うように、外部のDTDのアドレスが記述してあります。
ただ、ネットは繋がる環境です。

トレースを見てみると、どうやらxmlローディングの1回目は前述のタイムアウトで、
その後もう一度ローディングを行っており、そこではエラーが起きていないようです。
なにか気持ち悪いですが、DTD関連は問題はなさそうです。

ただ、あいかわらずvalidatorは動かせていませんが・・・
続きは独力でなんとかしてみたいと思います。

ありがとうございました。
1

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