4

WebSphere 7 用のアプリケーションの開発に問題があります。セットアップは次のとおりです。RAD 7.5.5.2 で開発された複数のモジュールで構成される Maven ベースのプロジェクトがあります。

モジュールの 1 つは、JSP を使用し、taglib に依存する単純な Web アプリケーション (war) です。

Taglib 自体はもう 1 つのモジュールです。つまり、taglib 記述子と META-INF/tags の下のタグ ファイルの 2 つのファイルだけを持つ単純な Java プロジェクトです。

taglib jar をビルドし、手動で Web アプリケーションの WEB-INF/lib にコピーすると、タグが正しく選択され、ページにレンダリングされます。

RAD 経由でプロジェクトをデプロイすると、taglib が取得されません。エラーは言う:

```
com.ibm.ws.jsp.JspCoreException: JSPG0047E: Unable to locate tag library for uri http://juriy.com/myproject/jsp/my-taglib 
```

JAR としてパッケージ化され、WEB-INF/lib に追加された同じタグ ライブラリは、完全に機能します。

WebSphere 管理コンソールを開くと、taglib プロジェクトが WebSphere によって認識されていることがわかります。ただし、JAR としてパッケージ化されていません。代わりに、プロジェクトへのパスが webapp クラスパスに追加されます。の

```
Troublehooting -> Class Loader Viewer -> Module - com.ibm.ws.classloader.CompoundClassLoader
```

taglib のエントリが表示されます。

```
file:/D:/Data/MyProject/UIComponents/target/classes
```

言い換えれば、WS は開発サイクル中にプロジェクトを JAR としてパッケージ化することを気にせず、taglib として選択されないように見えます。

RAD (または WebSphere) に「このプロジェクトをクラスパスに追加する前に JAR としてパッケージ化してください」と伝える方法はありますか? このセットアップを機能させる別の方法も大歓迎です。開発中に常に jar を手動でコピーすることはできません。

免責事項: 私は WebSphere の専門家ではありません (この獣を使用して 1 週間しか経っていません)。この問題を解決する可能性のあるものを提案してください。

4

3 に答える 3

0

私の知る限り、RADはEclipseプラットフォームで作成されています。Mavenを使用すると、jarファイルをビルドしてローカルリポジトリに配置するアーティファクトを作成できることを知っています。他のモジュールは、M2_REPO変数を介してそのjarを参照できます。次に、Mavenに固執し、Mavenプラグインを使用してEclipseを作成する必要があります。これは、MavenをEclipseに統合するのに役立ちます。ただし、プロジェクトビルダーとantを使用してプロジェクトを構成するオプションを検討してください。次に、ビルド時にantターゲットを簡単に実行して、デプロイ前にjarを作成できます。この手法は、EclipseIDEだけでなく他のIDEでも使用されます。プロジェクトビルドの前後にantターゲットを実行することは非常に貴重な機能です。

于 2013-03-23T10:52:55.947 に答える
0

taglibをMavenjarとしてパッケージ化し、ローカルの.m2リポジトリにインストールします。次に、メインプロジェクトのpomの依存関係を参照します。梱包のために引き込まれます。ローカル開発で解決している場合は、ワークスペースの解決がオンになっている可能性があります。

また、プロジェクトのビルドに必要な依存関係を制御するというMavenの主な目的を回避したため、MavenベースのプロジェクトでWEB-INF/libにjarを追加することはベストプラクティスではありません。

于 2013-03-23T17:59:04.920 に答える
0

WARにマニフェストを追加しようとしましたか?

于 2013-03-24T07:39:54.823 に答える