Apache Axis2 и пружинная нить - PullRequest
       26

Apache Axis2 и пружинная нить

0 голосов
/ 13 октября 2011

Хорошо, я использую Apache Axis2 и Spring Framework. По сути, класс WebServiceHandler представляет все операции веб-службы. Поэтому, когда приходит запрос, вызывается этот класс. Насколько я понимаю, для каждого запроса Tomcat или Axis2 должны создавать новую тему. Но выполнение «Thread.currentThread (). GetId ()» и «Thread.currentThread (). GetName ()» всегда имеет одинаковые идентификатор и имя.

Я полагаю, это вызывает проблемы в моем DAO, поскольку я использую Hibernate для создания 3 SessionFactories и использую текущую модель потоков для выполнения запросов, что делает всю систему очень медленной.

Я мог бы создавать новый поток для каждой операции перед вызовом моего класса DAO, но еще не пробовал. Любой способ решить эту проблему с помощью конфигурации в Axis2 или Spring? Спасибо.

Часть моего applicationContext.xml ниже:

<!-- Axis2 Web Service, but to Spring, its just another bean that has dependencies -->
<bean id="springContext" class="com.ws.beans.spring.SpringContext"/>

<bean id="springAwareService" class="com.ws.beans.WebServiceHandler" >
    <constructor-arg ref="springContext" />
</bean>

1 Ответ

0 голосов
/ 13 октября 2011

Это обрабатывается tomcat (или любым веб-контейнером).Он не создает новый поток для каждого запроса, но вместо этого использует пул потоков для выполнения входящего запроса.В вашем случае, поскольку вы выполняете только один запрос за раз - один и тот же поток используется для выполнения последующих запросов.Если вы попытаетесь выполнить много запросов параллельно - тогда вы заметите, что идентификаторы / имена потоков будут другими.

...