0

Glassfish サーバーにデプロイしたくないスタンドアロン クライアントがあります。クライアントとの間で、ポイント ツー ポイント通信パターンを介してメッセージを投稿したいと考えています。スタンドアロン クライアントを使用しているため使用できない注釈を使用するこの素晴らしいチュートリアルを見つけました。stackoverflow で次の解決策を見つけました。

Context jndiContext;
private ConnectionFactory connectionFactory;
private static Queue queue;

public TweetSender() throws NamingException{
    jndiContext = new InitialContext();
    connectionFactory = (ConnectionFactory) jndiContext.lookup("JMS/KwetterConnectionFactory");
    queue = (Queue) jndiContext.lookup("JMS/KwetterQueue");
}

また、glassfish ディレクトリからいくつかのライブラリをインポートする必要があることもわかりました。だから私はした:プロジェクトのプロパティ

次のエラーが表示されます。

javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.enterprise.naming.impl.SerialInitContextFactory [Root exception is java.lang.ClassNotFoundException: com.sun.enterprise.naming.impl.SerialInitContextFactory]

私は何を間違っていますか?

編集

問題の一時的な解決策を見つけましたが、それは正しいものではないと感じています (プロジェクトを移行したいときに問題が発生する可能性があると思います.Glassfish lib フォルダーから取得したライブラリを削除し、「絶対.道"。

4

1 に答える 1

0

解決策として、スタンドアロン クライアント アプリケーションを jar ファイル (例: myclient.jar) にパックすることができます。そしてappclient、GlassFish のユーティリティを使用してアプリケーション クライアントとして実行します。

applcient -client myclient.jar

ユーティリティはappclient[glassfish ホーム ディレクトリ]/glassfish/bin にあります。

于 2013-03-17T17:03:45.113 に答える