- PR -

ライブラリの競合?について

1
投稿者投稿内容
FZR
常連さん
会議室デビュー日: 2007/09/10
投稿数: 42
投稿日時: 2008-02-29 14:48
いつもお世話になっております。FZRと申します。

アプリケーションコンテナに付属するライブラリ及びデプロイされたアプリケーションに同梱したライブラリ等の関係について、情報をお持ちの方がおられましたら教示いただけませんでしょうか。

現在、Linux(2.6系) + J2SDK1.4.2_04 + JBoss 3.2.6の組み合わせて動作しているアプリケーション(以下、AP1)があります。このAP1はフレームワークとしてStruts 1.1を採用しております。そこにStruts 1.2.9を採用したアプリケーション(以下、AP2)をデプロイしたところ動作しなくて悩んでおります。

ActionResourcesの初期化で長時間掛かっていることや、"Cannot find ActionMappings or ActionFormBeans collection"等のエラーが画面に出力されることから、struts-config.xmlが正常に読み込めないか、記述された要素を正確に読み込めていないようでした。

ネットを徘徊していて、Tomcatのサンプルが動かなかった件について、Strutsのバージョンを揃えたら動いたという記事を見かけましたので、同様にAP2をStruts 1.1で作り直したところ、問題なく動作するようになりました。

AP1及びAP2とも、Strutsやその他ライブラリはアプリケーション単位にWEB-INF/libに同梱するようにしているのですが、同一コンテナ上で複数のアプリケーションを動作させた場合、これらアプリケーション毎に同梱しているライブラリのバージョンなどが他のアプリケーションに影響を与えるものなのでしょうか?

環境変数には特にCLASSPATHは設定していません。Tomcatの場合は以下の順序でクラスパスが設定されるようですがJBossもほぼそれに準じているのではないかと推測しています。

・環境変数CLASSPATH
・Webアプリケーションの/WEB-INF/classes
・Webアプリケーションの/WEB-INF/lib/*.jar
・$CATALINA_HOME/common/classes
・$CATALINA_HOME/common/endorsed/*.jar
・$CATALINA_HOME/common/lib/*.jar
・$CATALINA_HOME/shared/classes
・$CATALINA_HOME/shared/lib/*.jar

上記を見る限り、他のアプリケーションにまで検索パスが及ぶようなこともなさそうなので、今回の症状が何故なのか理解できません。また実機はLinuxですが、開発しているWindows上では同一のコンテナ上でどちらのアプリケーションも動作しますし、他のライブラリ(JavaMailやJAF等)では特に問題なく動いており、Strutsだけの問題のようにも見えます。

何かしら設定があるのか、環境等で見落としはないか、何か1つでも結構ですので、心当たりのある方がおられましたらお返事いただけないでしょうか。
未記入
会議室デビュー日: 2007/09/11
投稿数: 9
投稿日時: 2008-02-29 15:21
参考にならないと思いますが、
log4j+Springframeworkを使用した場合に、片方のアプリケーションが起動しないということがありました。

URL:www.doinn.com/ja/blog/2007/04/spring20weblog4j.html
あすか
ぬし
会議室デビュー日: 2006/07/12
投稿数: 309
投稿日時: 2008-02-29 15:41
以前似たような経験をしたので参考までに

何かのフレームワーク(忘れました)は
動作管理かなんかに
特定の場所にファイルを作成しています。
バージョンが違っても同じファイル名であるが
内容が異なっているため
片方が動かなくなったと言う経験がありました。

これの類似かもしれません
FZR
常連さん
会議室デビュー日: 2007/09/10
投稿数: 42
投稿日時: 2008-02-29 15:53
# 未記入さん

ロガーについては特に何も設定していないので、恐らくJdk14Loggerが使用されているはずです。ただロガーが影響していることも考えられますので、共通設定等がないか調べてみることにします。どうもありがとうございました。

FZR
常連さん
会議室デビュー日: 2007/09/10
投稿数: 42
投稿日時: 2008-02-29 16:01
# あすかさん

動作管理用に特定のファイルですか...方やLinux、方やWindowsしかもEclipse上からとは言え、同じJBoss上で動作させているのに動作する/しないの差が出てくるものなのでしょうか?でもクラスパスが重なっていないこと考えると、仰るように何かしらの契機で取得する内容にバージョン差があるのは否めませんね。一度調べてみることにいたします。もしフレームワーク名でも思い出されたらご一報いただければ幸いです。

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

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