Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Intellij IDEA Почему в проекте Tomcat сразу не отражаются изменения в классах сервлетов? / 7 сообщений из 7, страница 1 из 1
16.04.2017, 13:53
    #39439315
drno
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Intellij IDEA Почему в проекте Tomcat сразу не отражаются изменения в классах сервлетов?
Здравствуйте.

Работаю в IDEA 2017.1, пишу приложение под Tomcat (использую 9.0.0.M19), тестирую в браузере Google Chrome Версия 57.0.2987.133 (64-bit).

Заметил сегодня одну "мелочь", когда писал сервлет для upload файла на сервер.
Вношу изменения в сервлет, деплою, мне приложение продолжает возвращать ошибку, которой уже по идее не должно быть.
Ковырялся в коде, пытался найти ошибку, ничего.
Потом предпринял попытку - вытер полностью проект из WabApps Tomcat и IDEA его разлила заново и ошибки ушли.

Почему сразу не применяются изменения в классах сервлетов? Что не так?

p.s.
настройки деплоя



артефакты



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



для исключения факторов - кеширования буфера и т.д. запустил из IE11 (до этого не использовался), проблема воспроизводится и там.

В предыдущих версиях вроде бы такого не замечалось по моим ощущениям...
...
Рейтинг: 0 / 0
16.04.2017, 14:49
    #39439321
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Intellij IDEA Почему в проекте Tomcat сразу не отражаются изменения в классах сервлетов?
Документация .
В частности, параметр reloadble контекста (a.k.a приложения) .
...
Рейтинг: 0 / 0
16.04.2017, 21:57
    #39439405
drno
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Intellij IDEA Почему в проекте Tomcat сразу не отражаются изменения в классах сервлетов?
Basil A. Sidorov,

благодарю,

добавил тег
Код: xml
1.
2.
		<Context path="/um" docBase="C:\Server\Tomcat\webapps\um\" reloadable="true">
        </Context>	



помогло
...
Рейтинг: 0 / 0
16.04.2017, 22:12
    #39439412
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Intellij IDEA Почему в проекте Tomcat сразу не отражаются изменения в классах сервлетов?
Отвыкайте использовать path в описателе контекста.
Правильнее, всё-таки, было посмотреть содержимое server.xml и настроить среду разработки на обновление (при необходимости) "отслеживаемого ресурса" (WEB-INF/web.xml - по умолчанию). Наверняка такая возможность прячется за настройками развёртывания вашей среды разработки.
...
Рейтинг: 0 / 0
17.04.2017, 08:01
    #39439473
drno
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Intellij IDEA Почему в проекте Tomcat сразу не отражаются изменения в классах сервлетов?
Basil A. Sidorov,

благодарю за совет, попробую сделать.

Теперь при включении этой настройки возникла другая проблема

JSP при использовании подключении к БД типа

Код: xml
1.
2.
3.
4.
5.
6.
7.
<Context>
    <Resource name="jdbc/SQLite_local" auth="Container"
              type="javax.sql.DataSource" driverClassName="org.sqlite.JDBC"
              url="jdbc:sqlite:d:\DataBases\SQLite\test.sqlite"
              username="" password="" maxActive="20" maxIdle="10"
              maxWait="-1"/>
</Context>



например

Код: html
1.
2.
3.
4.
5.
6.
        <c:set var="SCRIPT">
            select * from um_tasks_dir t order by t.id
        </c:set>
        <sql:query var="um_tasks_dir" dataSource="jdbc/SQLite_local">
            ${SCRIPT}
        </sql:query>



возвращает ошибку о том, что не возможно найти драйвер

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/views/tasks_dir.jsp at line 16

13:         <c:set var="SCRIPT">
14:             select * from um_tasks_dir t order by t.id
15:         </c:set>
16:         <sql:query var="um_tasks_dir" dataSource="jdbc/SQLite_local">
17:             ${SCRIPT}
18:         </sql:query>
19: 


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:588)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	UM.RU.HTTP.Servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:72)
	UM.RU.HTTP.Servlet.Forward.doGet(Forward.java:25)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Root Cause

javax.servlet.ServletException: javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "java.sql.SQLException: No suitable driver found for jdbc/SQLite_local"



Чем можно помочь в этой ситуации?

p.s.

хотя драйвер никуда не девался из ..\um\dashboards\web\WEB-INF\lib\ , он там есть и при исключении из server.xml
Код: html
1.
2.
		<Context path="/um" docBase="C:\Server\Tomcat\webapps\um\" reloadable="true">
        </Context>	



ошибка не воспроизводится.
...
Рейтинг: 0 / 0
17.04.2017, 08:15
    #39439475
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Intellij IDEA Почему в проекте Tomcat сразу не отражаются изменения в классах сервлетов?
drnoхотя драйвер никуда не девался из ..\um\dashboards\web\WEB-INF\lib\ , он там есть и при исключении из server.xml
Код: html
1.
2.
		<Context path="/um" docBase="C:\Server\Tomcat\webapps\um\" reloadable="true">
        </Context>	


Иерархия класслоадеров. server.xml работает на уровне контейнера. И "видит" либы контейнера. А либы модулей он не видит. Модули же видят и свои и либы контейнера (там есть ещё много нюансов, но в первом приближении так).
Так как DataSource вы настроили на уровне контейнера, то и драйвер надо добавить в контейнер, а не в модуль.
...
Рейтинг: 0 / 0
17.04.2017, 08:25
    #39439479
drno
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Intellij IDEA Почему в проекте Tomcat сразу не отражаются изменения в классах сервлетов?
Basil A. Sidorov,

перенес настройку reloadable="true"
на уровень модуля в context.xml и все заработало

Код: html
1.
2.
3.
4.
5.
6.
7.
<Context reloadable="true">
    <Resource name="jdbc/SQLite_local" auth="Container"
              type="javax.sql.DataSource" driverClassName="org.sqlite.JDBC"
              url="jdbc:sqlite:D:\DataBases\SQLite\test.sqlite"
              username="" password="" maxActive="20" maxIdle="10"
              maxWait="-1"/>
</Context>



Благодарю!!!
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Intellij IDEA Почему в проекте Tomcat сразу не отражаются изменения в классах сервлетов? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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