Glassfishアプリケーションクライアントコンテナ
-
25-10-2019 - |
質問
私は一緒に仕事をしようとしています 埋め込み可能なGlassfishアプリクライアントコンテナ。私が見つけることができる唯一のリソースは、この食欲をそそるコードスニペットを含む上記のJavadocsです
import org.glassfish.appclient.client.acc.AppClientContainer;
import org.glassfish.appclient.client.acc.config.TargetServer;
AppClientContainerBuilder builder = AppClientContainer.newBuilder(
new TargetServer("localhost", 3700));
AppClientContainer acc = builder.newContainer(new File("myAC.jar").toURI());
(または、あるいは)
AppClientContainer acc = builder.newContainer(MyClient.class);
それから、
acc.startClient(clientArgs);
// The newContainer method returns as soon as the client's main method returns,
// even if the client has started another thread or is using the AWT event
// dispatcher thread
// At some later point, the program can synchronize with the app client in
// a user-specified way at which point it could invoke
acc.stop();
これはかなり素晴らしいように見えますが、さまざまなエラーでこれを数回実行しようとしました。
誰かがこれを使用して経験を積んだことがありますか、それとも、これで作業する方法を説明するいくつかのリソースの方向に私を向けることができますか?
解決
これは、Glassfish 3.1.2と簡単なJava Swing UIアプリケーションで動作しています。ターゲットサーバーによって指定されたホスト/ポートは無視されているように見えます。システムプロパティを設定する必要がありました。
org.omg.CORBA.ORBInitialHost = hostname
org.omg.CORBA.ORBInitialPort = 2037
デフォルトのポートで実行されていないため、接続を取得します。
すべてをコンパイルするために、OracleがAppClientContainerなどがパッケージに含まれていることを文書化した場合に役立ちます。
org.glassfish.appclient.client.acc
次に、コンピレーションに必要な.jarsを見つけることができます。
gf-client,jar, gf-client-module.jar, acc-config.jar
AppClientContainer.startClientは、メソッドを呼び出そうとします。
public static void main(String[] args)
myclient.classでは、まさにあなたが望むものではないかもしれません。私の場合、私の目標は、Eclipseベースのアプリケーションでこの作業を行うことです。これは、発売を「所有」したいと考えています。さらに、私が必要とするOSGI環境は、Glassfish ACCと完全に対立しているようで、独自のクラスロードメカニズムを持っています。
に必要ですが StartClient 電話、 主要 メソッドは、別のスレッドや特別なもので呼び出されないようです。何もしないダミーのメインを単純に提供し、すべてのアプリケーションコードをすぐに提供できることがわかりました StartClient リターンを呼び出します。
このACCの実装全体は、スタンドアロンクライアントをGlassfish 3で実行しているアプリケーションに接続する唯一のサポートされている方法のようです。V2で利用可能なシンプルさと比較して、かなり不十分です。 .jarsの巨大なリストには、私にはまったく興味のないあらゆる種類のものが含まれています。実際、私はこのメッセージを見ます。
15-May-2012 17:49:27 com.sun.enterprise.v3.server.CommonClassLoaderServiceImpl findDerbyClient
INFO: Cannot find javadb client jar file, derby jdbc driver will not be available by default.
また、OracleはBean-Validator.jarにSLF4Jロガーの実装を捨てました。
Glassfish EJB FAQで http://glassfish.java.net/javaee5/ejb/ejb_faq.html V3のために更新されており、いくつかの助けもあります。
他のヒント
周りにはまともなドキュメントがあるようです ACCを使用してクライアントを開発します Oracleのサイトで。