Tomcat не развертывает новую версию файлов вообще-linux / eclipse
у меня проблема с тем, как tomcat развертывает мои файлы на сервере.
Я установил Tomcat 7 в /opt/tomcat7
.
в моем eclipse я указал этот путь как мой сервер tomcat.
мой каталог рабочего пространства /home/maciej/workspace/<projects here>
теперь, если я редактирую файл класса и добавляю просто log statement
log.info("blabla");
и затем развернуть 'NEW' версия файла через-run на сервере, я не вижу этого 'blabla'
в мой выходной. Он похоже, хотя я изменил файл класса, он не был должным образом развернут в tomcat. Tomcat читает бог знает что, но, конечно, не файл, который он должен читать.
EDIT: я recofnigured мой Tomcat в Eclipse и теперь:
Server Path = /opt/tomcat7
Deploy Path = /opt/tomcat7/webapps <- used to be .metadata/blablabla default
eclipse tomcat location
когда я открываю "конфигурацию открытого обеда" в аргументах / рабочем каталоге, опция по умолчанию-билет с серым путем /home/maciej/Desktop
это должно быть изменено?
это не tomcat рабочий каталог /opt/tomcat7/work
?
какие-либо предложения / идеи? Поскольку эта проблема немного действует мне на нервы, я не могу разработать приложение.
3 ответов
на Server Path
такой же Tomcat installation directory
в модальном вы видите в Window
>Preferences
>Server
>Runtime Environments
после удара Edit
. Это должно быть установлено в /opt/tomcat7
или там, где живет корень вашей установки Tomcat.
на Deploy Path
относительно Server Path
. Он должен быть!--10-->, если у вас уже есть вещи и вы хотите отдельный каталог. Вы не сможете редактировать это, пока не выключите Tomcat и не удалите все webapps под ним через Servers
вид.
попробуйте снять флажок Modules auto reload by default
если Вы доверяете горячей замене JDK, что вы должны, если вы используете JDK 1.7 или 1.8 и просто хотите увидеть вставленный оператор журнала.
рабочий каталог, который вы упомянули, - это только корневой каталог, который Tomcat использует для выплевывания дампов потоков при сбоях и тому подобное. Это не имеет ничего общего с каталогом Tomcat "work".
открыть вид сервера: окно - >показать вид - >другие - >серверы. Выберите правильный сервер, щелкните правой кнопкой мыши, выберите "Очистить", а затем перезапустите tomcat. Это должно помочь.
если вы что-то измените в проекте, Eclipse будет автоматически создавать и "развертывать" файлы в указанном Вами месте. По умолчанию работа Eclipe останавливается, а остальное зависит от tomcat.
Tomcat, как и любой веб-сервер Java, обнаруживает изменения в JSPs и перекомпилирует их. Тем не менее, изменения в классах не влияют из-за того, как работает загрузка классов Java. Для новой версии класса, который будет использоваться tomcat, вам нужно:
- не загрузили класс раньше. Например, вы запускаете tomcat, но затем видите ошибку перед выполнением любого запроса. Если вы измените класс, это изменение будет использоваться, потому что класс еще не был загружен.
- перезагрузить приложение. Это означает, что все классы отбрасываются и все начинается заново.
самый простой способ перезагрузить приложение, по умолчанию, чтобы сделать изменение на web.xml
. Если вы посмотрите на конфигурацию tomcat conf/context.xml
вы можете увидеть, что есть. Любое изменение вызовет перезагрузку контекста. Таким образом, вы можете либо внести искусственное изменение в файл, либо добавить ресурс, например WEB-INF/version.properties
и создать другой version.properties
С любой сборки.
в любом случае перезагрузка сложного приложения требует времени. Вот почему есть плагины, такие как JRebel. Но прежде чем вы пойдете по этому пути (который добавляет еще одну движущуюся часть к вашей настройке), вы также можете попробовать использовать поддержку Eclipe для замены горячего кода. Вы начинаете tomcat в отладка, подключение к нему с помощью Eclipse, а затем изменение некоторого класса. Eclipse попытается перекомпилировать класс и загрузить новое определение в котяра. Если он не сработает, он скажет вам. Как правило, это произойдет, когда вы измените структуру программы и преуспеете, когда вы просто измените реализации метода.