Исследовательский раздел 5.2.7 JavaTM API для спецификации Web-сервисов на основе XML (JAX-WS), кажется, указывает на это, хотя похоже, что для специфичное для реализации поведение. Чтобы действительно знать, что происходит, вам нужно изучить используемую вами реализацию JAX-WS и конкретную среду развертывания. Я полагаю, что поведение может отличаться в зависимости от того, развернута ли служба в контейнере сервлета или в автономном процессе. Контроль, который у вас есть над потоками, ограничен предоставлением конкретной ThreadPoolExecutor
реализации. Раздел 5.2.7 гласит:
5.2.7 Исполнитель
Endpoint
экземпляры могут быть сконфигурированы с помощью java.util.concurrent.Executor
. Затем исполнитель будет использоваться для отправки любых входящих запросов в приложение. Методы setExecutor
и getExecutor
Endpoint
могут использоваться для изменения и получения исполнителя, настроенного для службы.
<> Соответствие (использование Executor): Если объект исполнителя успешно установлен на Endpoint
с помощью метода setExecutor
, то реализация ДОЛЖНА использовать его для отправки входящих запросов после публикации Endpoint
с помощью метода publish(String address)
. Если публикация выполняется с использованием метода publish(Object serverContext))
, реализация МОЖЕТ использовать указанного исполнителя или другого, определенного для используемого контекста сервера.
<> Соответствие (Исполнитель по умолчанию): Если исполнитель не был установлен на Endpoint
, реализация ДОЛЖНА использовать своего собственного исполнителя, java.util.concurrent.ThreadPoolExecutor
или аналогичный механизм, для отправки входящих запросов .
Также в разделе 5.2.2 ссылки 5.2.7 в конце раздела:
5.2.2 Публикация
...
Endpoint
обычно вызывается для обслуживания одновременных запросов, поэтому его разработчик должен быть написан так, чтобы поддерживать несколько потоков. Ключевое слово synchronized
может использоваться, как обычно, для контроля доступа к критическим разделам кода. Для более точного управления потоками, используемыми для отправки входящих запросов, приложение может напрямую установить исполнителя, который будет использоваться, как описано в разделе 5.2.7.
Я понимаю, что это, вероятно, не дает точного ответа на ваш вопрос, но, надеюсь, оно указывает вам направление, в котором вы можете получить ответ, который вы ищете.