0

JNDI (Configured SIB) から websphere 7 キューを検索する必要があります。最初に、リモート Websphere サーバーにアクセスするクライアント プログラムを作成しました。com.ibm.ws.admin.client、com.ibm.ws.runtime、com.ibm.ws.sib.client.thin.jms、com.ibm.ws.webservices.thinclient jar ファイルを追加しました。

コードは次のとおりです。

Hashtable<String, Object> env = new Hashtable<String, Object>();
env.put(Context.INITIAL_CONTEXT_FACTORY,
                    "com.ibm.websphere.naming.WsnInitialContextFactory");
env.put(Context.PROVIDER_URL, "iiop://localhost:2809");

リモートクライアントとしてアクセスしているため、これはうまく機能しません。したがって、これを追加しました。

env.put("java.naming.corba.orb",org.omg.CORBA.ORB.init((String[])null,null));

これは今のところうまくいきます。次に、上記の行を削除し、ターゲット JDK を IBM JDK に移動しました。その場合も問題なく動作します。

サーバープログラムで上記のキューにアクセスする必要があるときに直面する実際の問題。これは別の JVM で実行されます。リモート JNDI キューにアクセスしようとすると、クラス キャスト例外が発生します。IBM ではなく、デフォルトの Sun ORB 実装をロードするためだと思います。com.ibm.ws.orb jar を追加しましたが、まだ運がありません。Sun ORB をロードします。したがって、クラスキャスト例外が発生します。

上記のように、org.omg.CORBA.ORB をロードする機能がありません。これを実行する方法はありますか?何か不足していますか?Websphere 8.5 からのフィードバックも歓迎します。

注: これは Websphere MQ ではありません。Websphere アプリケーション サーバー キューについて言及しています。

4

1 に答える 1

0

うーん...トリッキー。以前は EAR ファイルで動作していたクライアント jar ファイルをパッケージ化し、クラスローダー ポリシーを PARENT_LAST に変更してみてください。

于 2013-02-01T18:40:21.657 に答える