powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / jaxws multithreading
7 сообщений из 7, страница 1 из 1
jaxws multithreading
    #39104151
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто-нибудь разбирался, является ли standalone jax-ws сервис многопоточным? Имеется в виду сервис, публикуемый не на сервере приложений, а подобным образом:
Код: java
1.
Endpoint endpoint = Endpoint.publish(address, new MyMegaServiceImpl());
...
Рейтинг: 0 / 0
jaxws multithreading
    #39104171
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А с фига ему бы быть однопоточным?
https://docs.oracle.com/javase/8/docs/jre/api/net/httpserver/spec/com/sun/net/httpserver/HttpServer.html
И научитесь же наконец читать исходники JSE.
...
Рейтинг: 0 / 0
jaxws multithreading
    #39104172
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanra,

Если код исполнять внутри JEE сервера, то там через SPI публикация будет происходить в этот сервер, скорее всего, а не во внутренний HTTP сервер Java.
...
Рейтинг: 0 / 0
jaxws multithreading
    #39104179
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя, смотрю вот в sun.net.httpserver.ServerImpl. Похоже, что по-умолчанию там сервер вполне себе однопоточный.
...
Рейтинг: 0 / 0
jaxws multithreading
    #39104240
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz, про jee сервер речь не идет, вопрос про standalone публикацию сервиса.
Посмотрел спецификацию , пункт 5.2.7:
5.2.7 ExecutorEndpoint instances can be configured with a java.util.concurrent.Executor. The executor will
then be used to dispatch any incoming requests to the application. The setExecutor and getExecutor
methods of Endpoint can be used to modify and retrieve the executor configured for a service.
Conformance (Use of Executor): If an executor object is successfully set on an Endpoint via the set-
Executor method, then an implementation MUST use it to dispatch incoming requests upon publication of
the Endpoint by means of the publish(String address) method. If publishing is carried out using
the publish(Object serverContext)) method, an implementation MAY use the specified executor or
another one specific to the server context being used.

Conformance (Default Executor): If an executor has not been set on an Endpoint, an implementation
MUST use its own executor, a java.util.concurrent.ThreadPoolExecutor or analogous mechanism,
to dispatch incoming requests.

Понятно, что можно назначить простейший экзекутор, и сервис станет многопоточным
Код: java
1.
endpoint.setExecutor(Executors.newFixedThreadPool(5));


Но нас интересует последний пункт: Default Executor, где говориться, что в реализации по умолчанию должен использоваться свой экзекутор. Но, например, в этой книжке утверждается, что одновременно может исполняться только 1 запрос, то есть по умолчанию там пул из 1 потока.
Короче, для уверенности, видимо, придется использовать код, приведенный выше
...
Рейтинг: 0 / 0
jaxws multithreading
    #39104250
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanra,

Вот такой вот он:

Код: java
1.
2.
3.
4.
5.
private static class DefaultExecutor implements Executor {
        public void execute (Runnable task) {
            task.run();
        }
}



Лучше явно передать свой Executor в Endpoint.
...
Рейтинг: 0 / 0
jaxws multithreading
    #39104465
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz, честно говоря, не знаю, как посмотреть некоторые классы jdk, например, реализацию com.sun.xml.internal.ws.transport.http.server.WSHttpHandler (в src.zip этого класса нет).
В OpenJdk, например, даже default executor-ом не стали заморачиваться, а просто выполняют код в основном потоке, если executor нулевой . Приведенный выше DefaultExecutor - это наверно из HTTPServer-а?
Впрочем, на вывод это не влияет - пулом действительно лучше управлять самостоятельно.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / jaxws multithreading
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]