0

weblogic 10.3 で jsf 1.1 ポートレットを作成しましたが、あるシナリオでは tomahawk ライブラリのヘルプが必要です。ポータル アプリケーションの WEB-INF の lib フォルダーに jar ファイルとサポート ファイルをドロップしましたが、URL にアクセスすると NoClassdef ..... exception for classes in tomahawk jar と jsp のコンパイルに失敗するというエラーが表示されます。

私は weblogic を初めて使用します。誰かが私が間違っている可能性があることを提案できれば、本当に感謝しています。

セットアップは、アプリケーション全体が耳として機能することです。Ear には app-inf と weblogic 固有の xml ファイルが含まれており、メイン ポータル Web アプリケーションはこの ear 内で戦争状態になります。weblogic ポータル 10.3 に同梱されているワークショップを使用しています。このプロジェクトは weblogic portal 9.3 から移行されました。

注:ドメイン/ライブラリにあるこのjarはしたくないのですが、そうすると、なぜアプリケーションがロードされ、ロードオンスタートアップでサーブレットスタートアップで定義されたすべてのクラスがかなり前に起動され、どのクラスも起動されなかったのかわかりませんサーバーによって検出されました。

現在使用されている JSF ライブラリは共有モードです。

4

2 に答える 2

1

java.lang.NoClassDefFoundErrorクラスパス内のクラスの実行時バージョンがコンパイル時のものと同じではないことを意味します。

注: ClassNotFoundExceptionではありません。

あなたの問題は、実際にはクラスの複数のバージョンが見つかっていることです。

また、JSF 1.2 ライブラリは Weblogic サーバーにバンドルされているため、これらのクラスの 1 つが WEB-INF/lib に再度追加されると、この例外が発生する可能性があります。エラーがスローされた正確なクラスはどれですか? WEB-INF と domain/lib に複数のバージョンの Tomahawk がありますか?

エクストラを削除し、WEB-INF/lib のみに 1 つ保持します。

アップデート:

ドキュメントの状態Separate JSF 1.2 and JSTL 1.2 JAR files and implementation JAR files are also provided in the WL_HOME/server/lib/api.jar file.

javax/faces/webapp/UIComponentELTagこのjarでそのクラスを確認してください。

私はまだ、weblogic.xml設定を使用して、WEB-INF/lib クラスを server/lib のクラスよりも優先してロードするように強制する必要があると思います。

<container-descriptor>
    <prefer-web-inf-classes>true</prefer-web-inf-classes>
  </container-descriptor>
于 2010-10-18T08:19:29.780 に答える
0

weblogic とインフラストラクチャに慣れていないので、さまざまなバージョンを台無しにしてしまいました。互換性のないjarが原因であることがわかりました。

于 2010-10-19T08:30:01.850 に答える