как определить область подключения всего весеннего проекта - область подключения веб-службы - PullRequest
0 голосов
/ 05 сентября 2018

Можно ли определить объем всего весеннего проекта, например session, request и т. Д.?

У меня есть весенний проект, который используется только в качестве веб-службы для предоставления услуг другим проектам, которые вместе формируют приложение. В проекте веб-сервиса есть много конечных точек, к которым все получают доступ через soapMessages из других проектов, когда это необходимо.

Чего я хотел бы добиться, так это чтобы каждый раз, когда этот проект веб-службы отвечал своим клиентам, он немедленно закрывал соединение. Я нашел следующие решения, но они на самом деле не являются решением этой проблемы:

В файле web.xml я добавил

<session-config>
        <session-timeout>10</session-timeout>       
</session-config>

но я делаю не так, как хотелось бы, поскольку закрываю все сессии каждые 10 минут.

Я создал .htaccess файл и добавил

<IfModule mod_headers.c>
    Header set Connection close
</IfModule>

иногда это даже не оценивается Tomcat, и вы можете установить эти свойства только в глобальной области видимости сервера, которая не будет привязана к конкретному проекту и применима ко всем приложениям на этом сервере.

Кстати, я знаю, что закрытие соединения и повторное его открытие при каждом запросе приведет к снижению производительности.

1 Ответ

0 голосов
/ 05 сентября 2018

Вы можете использовать попробовать с ресурсом , каждый раз, когда вы получаете запрос на API. Вы можете открыть сеанс с помощью try-with-resource и использовать этот сеанс для всего потока, чем после ответа сеанс будет автоматически закрыт с областью действия. Например:

try (Session session = sessionFactory.openSession()) {

     Response resp = service.doSomething(session);
     return resp;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...