1

私のアプリケーションには、CLASS_PATH にあり、jar ファイルを保存するディレクトリがあります。私はATGを使用しているので、プロパティファイルで.classを使用して、コンポーネントを初期化する方法を用意する必要があります(この状況ではサーブレットです)。したがって、CLASS_PATH ディレクトリに webapp.war が必要です。このwarファイルを置きましたが、動作しません。コンパイルしたサーブレット クラスをこのディレクトリに配置するにはどうすればよいですか?

もちろん、このコンパイルされたクラスだけをアーカイブから入れるのは得策ではありません:)

4

3 に答える 3

1

WEB-INF / classesにあるため、クラスローダーは戦争中のサーブレットクラスを見つけることができません。

WEB-INF/classesを解凍してクラスパスの場所にコピーしてみてください

于 2011-08-30T08:53:37.910 に答える
1

あなたが探しているのは、WARファイルを処理するように適合されたカスタムクラスローダーだと思います。このようなクラス・ローダーは、クラス・ファイルを抽出するために、WAR ファイルをアンパックまたは覗き込みます。

WAR ファイル内からロードするという話は聞いたことがありませんが実装するのはそれほど難しいことではありません。

于 2011-08-30T08:14:59.137 に答える
0

ATG では、クラスパスの設定は耳の作り方から始まります。ATG のすべてのモジュールには、「ATG クラスパス」と呼ばれる属性を指定する MANIFEST ファイルがあります。この属性の値は、実行時にクラスパスを構築するために使用されます。したがって、クラス ファイルへのパスをこの属性の値として含めると、ATG は ear の作成時にこれをクラスパス (具体的には runAssembler) に自動的に設定します。耳を展開するときの Jboss はそれを拾います。

于 2011-09-07T11:52:19.687 に答える