2

Jboss 5.1 を使用している JAXWS クライアントのタイムアウトを設定するにはどうすればよいですか。私はこれをやろうとしていました

bp.getRequestContext().put("com.sun.xml.ws.connect.timeout", 100);
bp.getRequestContext().put("com.sun.xml.ws.request.timeout", 100);

しかし、うまくいきません。スタンドアロン クライアントでは問題なく動作します。

使おうとしたところ

bp.getRequestContext().put("com.sun.xml.ws.request.timeout", 100);

org.jboss.ws.core.WSTimeoutException: Timeout after: 100ms を取得しましたが、300 (3*100 ms) 後にヘプニングしています。

誰でもこの問題で私を助けることができますか?

4

2 に答える 2

0

JAXWSは、マーシャリングアンマーシャリングにJAXBを使用します。

JAXContextコンテナでは、クラスパスをスキャンしているため、おそらくもっと時間がかかっています。

その場合は、JaxBContext の熱心な初期化を試してください。

JBossWS は、各サービスの最初のメソッド呼び出しと、巨大な wsdl コントラクト (何百ものインポートされた xml スキーマを持つ) が参照される次のメソッドの呼び出しで異なる動作をする場合があります。これは、最初の呼び出し中に内部的に実行される一連の操作が原因であり、その結果のデータはキャッシュされ、次の呼び出しで再利用されます。これは通常は問題になりませんが、各呼び出しでほぼ同じパフォーマンスを実現したい場合があります。これは、org.jboss.ws.eagerInitializeJAXBContextCache サーバー側 (JBoss 起動スクリプト内) とクライアント側 (便利な定数が org.jboss.ws.Constants で利用可能) の両方で、system プロパティを true に設定します。JAXBContext の作成は、通常、最初の呼び出し時にスタックが必要とする時間のほとんどを占めます。この機能により、JBossWS は最初の呼び出しが処理される前に、積極的に JAXB コンテキストを作成してキャッシュしようとします。

http://www.mastertheboss.com/javaee/jboss-web-services/web-services-performance-tuning

于 2014-11-24T16:22:13.477 に答える
0

これはあなたの見落としのように見えますが、JAX-WS タイムアウトの設定は、構築している特定の RI によって異なる場合があります。

これらの設定を試すことができます(ペアで使用するためにペアになっています)

   BindingProviderProperties.REQUEST_TIMEOUT
   BindingProviderProperties.CONNECT_TIMEOUT

BindingProviderProperties は次のものである必要がありますcom.sun.xml.internal.WS.client

それともストリングス

   javax.xml.ws.client.connectionTimeout
   javax.xml.ws.client.receive timeout

getRequestContext()ミリ秒単位で設定されるすべてのプロパティ。

ところで、どのようにしてコードなしでミリ秒の時間を計ることができたのですか :)?

于 2012-11-30T16:12:48.857 に答える