4

Sun から EJB の元のトレーニングを行っているときに、依存性注入とメイン クラスの概念を持つエンタープライズ アプリケーション クライアントのかなり奇妙な概念に出くわしました。

@javax.ejb.EJB
private static auctionsystem.ejb.AuctionManagerRemote auctionManager;

public static void main (String[] args)
   {
   TestClient.logger.entering (TestClient.TAG, "main");

   final String message = "hello";
   TestClient.logger.log (Level.INFO, "Sending {0}", message);
   final String reply = auctionManager.communicationTest (message);
   TestClient.logger.log (Level.INFO, "Received {0}", reply);

   TestClient.logger.exiting (TestClient.TAG, "main");
   return;
   }

これに関する背景情報が見つかりません。お気に入り:

  1. これはどのように機能するはずですか。
  2. NetBeans なしでそのようなアプリケーションを起動するにはどうすればよいですか。
  3. NetBeans なしで (Maven を使用した iE)、この構造をどのように構築しますか。

はい、NetBeans を使用していますが、コマンドラインや Maven でも同じ操作を実行できない場合は満足できません。

4

2 に答える 2

6

これはどのように機能するはずですか。

これは、Java EEアプリケーション クライアント(Java SE アプリケーションをラップし、それをアプリケーション サーバーにデプロイし、デプロイされた EJB、プラットフォーム サービス、およびリソースを利用できるようにする別のタイプの Java EE モジュール) および Java EEアプリケーション クライアントMain-Classである必要があります。注釈付きフィールドまたはメソッドでのリソースの注入をサポートします。static

NetBeans なしでそのようなアプリケーションを起動するにはどうすればよいですか。

Application Clientがパッケージ化され、アプリケーション サーバーにデプロイされていると仮定すると、Application Client Container (ACC)を起動する必要があります。このコマンドは、アプリケーション サーバー固有です。

たとえば、GlassFish では、appclientコマンドを使用する必要があります。JBoss の場合、(巨大な) コマンドについては、このwiki ページを参照してください。他のアプリサーバーについては、それぞれのドキュメントを参照してください:)

NetBeans なしで (Maven を使用した iE)、この構造をどのように構築しますか。

Application Clientは、以下を含む通常の JAR です。

  • Bean にアクセスするための Java クラス。
  • A META-INF/application-client.xml- (オプション) Java EE アプリケーション クライアント デプロイメント記述子。
  • META-INF/MANIFEST.MF完全なパッケージ プレフィックスと Java クライアントのクラス名を示すメイン クラスを参照するファイル。
  • アプリサーバー固有のデプロイメント記述子 - (オプション)

資力

于 2010-11-02T15:08:09.607 に答える
2

私自身の質問に答える(再び)

  1. これはどのように機能するはずですか?

    main()クラスは、依存関係を挿入してmain()を呼び出すアプリケーションサーバーにデプロイされます。Glassfishの展開は、特別なコマンド(appclient)を使用して実行されます。

  2. NetBeansなしでこのようなアプリケーションをどのように起動しますか?

    glassfishで述べたように、を使用してクライアントを起動しますappclient。例えば:

    appclient -enableassertions -mainclass auctionapp.TestClient -jar target / AuctionApp-ejb.jar

  3. NetBeans(Mavenを使用したiE)を使用せずにこの構成を構築するにはどうすればよいですか?

    通常の実行可能jarを作成します。これは、リモートインターフェイスがライブラリ内にもあり(とにかく良い実践です)、このライブラリが実行可能ライブラリ内に含まれている場合にのみ機能します。を使用maven-assembly-pluginして実行可能ファイルを作成できます。通常の実行可能jarを作成するのとまったく同じ方法です。

すべての助けをありがとう。SOがなければ、私は詳細を知ることができなかったでしょう。

于 2010-11-02T21:08:11.763 に答える