2010-08-19 5 views
1

Как включить повторное использование HTTP-соединений при использовании JAX-WS? Когда мы использовали AXIS2, мы установили свойство org.apache.axis2.transport.http.HTTPConstants.REUSE_HTTP_CLIENT в настройках клиентского заглушки. Что эквивалентно JAX-WS?Повторное использование HTTP-соединения в JAX-WS

(я проверил, что мы создаем новое соединение TCP для каждого вызова веб-службы. Оказывается, мы рушить предыдущее соединение непосредственно перед созданием, что новое соединение TCP.)

ответ

2

Согласно метро JAX-WS Guide вам просто нужно установить переменную среды Java http.keepAlive в true.

3

Поскольку я тоже страдал от этой проблемы, я углубился в нее. Похоже, что текущая версия (JDK 6) не корректно использует свойство http.keepAlive, даже несмотря на то, что Руководство (см. Мое последнее сообщение) говорит об этом, тем самым не повторяя соединения HTTP (TCP) для нескольких вызовов одного и того же клиента. Затем я нашел this bug report, подтвердив свои подозрения. Согласно отчету об ошибке, вам нужно будет обновить реализацию JAX-WS RI (aka Metro) до> = 2.1.2.

Если вы обновляете до последней версии (это 2.2.1 на момент написания), вам может потребоваться использовать механизм одобренных стандартов, чтобы JRE работал с правильной (новой) версией библиотек. Это связано с тем, что JAX-WS RI 2.2 основан на API-интерфейсах JAX-WS 2.2, но только версия 2.1 поставляется с текущей версией JDK/JRE.

Cheers, Daniel

Смежные вопросы