1

BLUF: スタンドアロン クライアントを WebSphere に格納されている Extreme Scale キャッシュに接続しようとして受け取った例外は、やや誤解を招くものだったので、ここで解決策を提供しました。

WebSphere Extreme Scale (WXS) v8.5 を WebSphere Application Server (WAS) v8.5 に正常にインストールしました (注: Installation Manager で同時に実行しようとしないでください。そうしないと、ファイルが失われます。個別にインストールしてください)。また、クライアント EAR とサーバー EAR の両方のインストールに成功したので、REST サービスをクライアントに使用して、クライアントがサーバーに接続し、キャッシュにアクセスできるようになりました。ただし、Java コマンド ライン (または Eclipse 内) からスタンドアロン クライアントを実行しようとすると、次のような例外が発生しました。

java.lang.Throwable: org.omg.CORBA.TRANSIENT: initial and forwarded IOR inaccessible  vmcid: IBM  minor code: E07  completed: No
at com.ibm.rmi.corba.ClientDelegate.createRequest(ClientDelegate.java:1272)
...
Caused by: java.lang.Throwable: connect: Address is invalid on local machine, or port is not valid on remote machine
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:381)

ObjectGridManager で接続を呼び出す場合:

_client = _ogManager.connect(hostport, null, clientObjectGridURL);

最初に確認することは、objectGridClient.properties ファイル内のホスト番号とポート番号が正しいことです (たとえば、ポート番号は、アプリケーション サーバーのポート リスト内の BOOTSTRAP ポートと一致します)。私の場合はこれで正解でした。netstat -an |grep を使用して、誰かがポートをリッスンしているかどうか、またはホスト ポートに telnet を使用しているかどうかを確認します。

次に確認することは、ファイアウォールがポートへの接続を妨げていないことです。サーバーからクライアントへのコールバックもあるため、これが問題を引き起こしていないことを確認する必要があります。私の場合、これは問題ではありませんでした。

4

2 に答える 2

7

問題であることが判明したのは、一般的なセキュリティをオンにして WAS を構成したため、管理コンソールでユーザー ID とパスワードが必要になったことです。しかし、ObjectGridManager を接続するための呼び出しを行ったとき、適切な ClientSecurityConfiguration オブジェクトを渡す代わりに、2 番目のパラメーターとして null を渡していました。明らかに、WAS を保護した場合、WAS に格納されたキャッシュに接続しようとする外部クライアントは、接続が許可されていることを検証するためにセキュリティ情報を提供する必要があります。

管理コンソール/セキュリティ/グローバル セキュリティを使用して WAS セキュリティを無効にし、[管理セキュリティを有効にする] のチェックを外しました。これにより、null を渡してテストを続行し、共有環境でテストする準備が整うまで、セキュリティをオンにして適切なセキュリティ構成設定を追加し、接続呼び出しで適切なオブジェクトを提供することを延期することができました (私の開発環境は自己完結型でした)。パブリック ネットワークに接続されていないラップトップ)。

この問題の解決策を探している他の人がここで見つけることができることを願って、この説明を含めました.

于 2012-11-05T16:44:39.060 に答える
0

スタブ クラスが実際に配置され、展開で使用可能であることを常に再確認してください。簡単に聞こえますが、それが私が抱えていた問題でした...

したがって、このエラーの理由はさまざまです。

于 2013-07-11T11:27:57.663 に答える