0

この問題を助けてください、私は怒っています...

EJB 3 と Struts 2 を使用して、Weblogic 10 をアプリケーション サーバーとして、IIS を Web サーバー (企業の制約) として使用して、クライアント サーバー Web アプリケーションを作成しようとしています。ただし、解決できないストレージの問題があります。

Struts 2.2 を使用すると、サーバーの起動中に次のスタック トレースが表示されます。

<12-ott-2010 16.02.21 CEST> <Error> <HTTP> <BEA-101165> <Could not load user def
ined filter in web.xml: org.apache.struts2.dispatcher.FilterDispatcher.
java.lang.reflect.InvocationTargetException - Class: com.opensymphony.xwork2.inj
ect.ContainerImpl$MethodInjector
File: ContainerImpl.java
Method: inject
Line: 295 - com/opensymphony/xwork2/inject/ContainerImpl.java:295:-1
        at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:428)
        at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.
java:190)
        at weblogic.servlet.internal.FilterManager$FilterInitAction.run(FilterMa
nager.java:320)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(Unknown Source)
        Truncated. see log file for complete stacktrace
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
[...]
java.lang.IllegalArgumentException: Javassist library is missing in classpath! P
lease add missed dependency!
        at ognl.OgnlRuntime.<clinit>(OgnlRuntime.java:165)

[...]

ただし、Javassist パッケージは、他のすべての Struts 関連ライブラリーの中で Web クラスパス (/WEB-INF/lib ディレクトリ) に明確に表示されており、そのパッケージとクラスを参照することもできます。CLASSPATH ライブラリと Weblogic 初期化パラメータにも入れましたが、何も機能しません。どう考えたらいいのかわからない。これは Struts 2/Weblogic 統合のバグですか?

さらに奇妙なのは、最初に Struts 2 を機能させることができたという事実です。その後、何らかの理由で(何が原因かはよくわかりません)停止し、そのエラーを取り除くことができません。

ご協力いただきありがとうございます。

4

1 に答える 1

0

多くの場合、すべての希望が失われたときに解決策が得られます。すべての Struts ライブラリ (Javassist を含む) を親 EAR プロジェクトの /lib ディレクトリに移動するだけだったようです。これは私には奇妙に聞こえますが、うまくいき、私は解決策に固執しています.

私は Weblogic およびエンタープライズ アプリケーション全般に​​あまり詳しくないので、サーバーが含まれている WAR ではなく、EAR をベース コンテキストとして扱うことはすぐには思い浮かびませんでした。

于 2010-10-12T14:56:37.363 に答える