4

アプリケーションクライアントjarに複数のエントリポイントを設定するにはどうすればよいですか?

Glassfishアプリケーションサーバーを使用しています。私はを使用してクライアントをつかむことができます

 asadmin get-client-stubs --appname APPLICATION_NAME .

現在、MANIFEST.MFで指定したデフォルトのメインクラスを実行できます。ただし、実行時に別のメインクラスを指定できるようにしたい。

すなわち

appclient -client MYJAR.jar -mainclass com.mystuff.Main1
and
appclient -client MYJAR.jar -mainclass com.mystuff.Main2

Main1とMain2の両方に、「publicstaticvoidmain」エントリポイントがあります。

MANIFEST.MFにないメインクラスを指定すると、次の例外が発生します。

Exception in thread "main" java.lang.RuntimeException: java.lang.IllegalArgumentException: Could not locate an embedded app client matching the main class name

appclientが他のメインクラスを参照するように変更する必要がありますか?

4

1 に答える 1

2

http://forums.java.net/jive/thread.jspa?threadID=65549&tstart=0 <-- 同じ質問をここに再投稿し、誰かが答えた...

やあ。

GlassFish アプリケーション クライアント コンテナーは、 -mainclass オプションを使用して、同じ EAR にパッケージ化された複数のクライアントを区別します。そのため、起動時に、一緒にパッケージ化された複数のクライアントのどれを起動するかをユーザーが選択できます。お気づきのように、特定のクライアント内で実行するメイン クラスに関して、開発者の意図をユーザーがオーバーライドすることはできません。

v3 で利用可能な別の appclient 構文を使用して、必要なことを行うことができます。

http://docs.sun.com/app/docs/doc/820-7701/appclient-1m?a=view

v2 では、単一のメイン クラスを記述して、実行するクラスを指定する引数を受け取り、そのクラスを動的にロードしてメイン メソッドを呼び出すことができます。

-ティム

于 2009-08-13T01:01:47.423 に答える