JAX-WSでソケット接続プールを無効にすることが可能かどうか疑問に思いましたか?
Jetty内からWebサービスに電話をかけています。Webサービスは、常にサーバーに最大2つの接続を持つように設計されています。接続の1つは、サーバーとのpub/subポーリングを実行するために使用されるブロッキング接続です。もう1つの接続は、標準のSOAP要求を行うために使用されます。接続がポーリングされると、他の接続を使用してポーリングすることはできなくなります。そうしないと、サーバーはエラーを返します。
これを行うために、2つのSOAPポートを作成します。1つはポーリングに使用し、もう1つは要求を行うために使用します。これは、ポーラーがデータを返し、SOAP要求接続がアイドル状態になるまでうまく機能します。その場合、次に同じSOAPポートでポーリングしようとすると、接続プールから接続の1つが選択され、再利用されます。たまたまSOAP要求接続を取得した場合、サーバーはエラーを返します。その時点から、ポーラーは水中で死んでしまいます。私が作成した新しいSOAPポートは、ポーリングに対して無効と見なされている2つの接続のいずれかを再利用することになります。
考えられる解決策は、接続プールを無効にすることです。つまり、新しいSOAPポートを作成するたびに、新しい接続が確立されます。それか、強制的に閉じることができるソケット自体に到達する方法のいずれかです。
サーバーへの接続は相互に認証されたSSL接続であることも言及する価値があるかもしれません。
参考までに、接続しようとしているサーバーの仕様は次のとおりです。
どんな助けでもいただければ幸いです!ありがとう、マーシャル