Является ли веб-сервис, реализованный через jax ws, многопоточным? - PullRequest
3 голосов
/ 10 марта 2012

Я написал веб-сервис, использующий реализацию Spring, cxf и jax ws, и у меня есть основной вопрос по WS. Как конечная точка веб-службы обрабатывает параллельные запросы? Создает ли он новый поток для каждого запроса, подобный сервлету, или это однопоточная модель? Поскольку мы ожидаем огромного объема для каждого веб-сервиса, имеет ли какое-либо значение использование WSDL для нескольких WSDL с разными конечными точками?

Ответы [ 3 ]

3 голосов
/ 10 марта 2012

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

1 голос
/ 10 марта 2012

С точки зрения как вашего клиента, так и вашего сервиса, такого понятия, как «многопоточность», не существует. Ваш клиент вызывает запрос и получает ответ (возможно, ответ об ошибке). Ваш сервер получает запрос и сервисы, которые запрашивают. Период.

Способ отправки запроса - это деталь реализации.

А WSDL - это просто "контракт". Служба «публикует», какие операции она поддерживает и какие типы данных она использует с WSDL; клиент упаковывает и распаковывает свои SOAP-сообщения с запросами и ответами соответственно. Но WSDL не играет никакой непосредственной роли в любом вызове веб-сервиса.

0 голосов
/ 12 декабря 2012

Уже поздно, но может помочь.

Endpoint.publish (Url, ServiceImplObj) публикует веб-сервис по указанному URL-адресу. Нет. потоков, назначенных для обработки запросов, действительно находится под контролем jvm, потому что это облегченное развертывание, которое обрабатывается самой jvm.

Для лучшего понимания вы можете напечатать имя текущего потока на стороне службы и увидеть, что потоки службы назначаются из пула потоков, который управляется jvm.

[pool-1-thread-1]: Response[57]:
[pool-1-thread-5]: Response[58]:
[pool-1-thread-4]: Response[59]:
[pool-1-thread-3]: Response[60]:
[pool-1-thread-6]: Response[61]:
[pool-1-thread-6]: Response[62]:

Это я пробовал на jdk 1.6.0_35.

xjc-версия xjc версия "JAXB 2.1.10 в JDK 6" Ссылочная реализация архитектуры JavaTM для привязки XML (JAXB), (сборка JAXB 2.1.10 в JDK 6)

...