Как заставить tomcat перезагрузить недавно скомпилированные файлы class / war - PullRequest
5 голосов
/ 22 января 2011

У нас есть набор запущенных сервлетов на движке Tomcat. Когда мы компилируем java-файл и строим войну, tomcat требуется неопределенное количество времени для его перезагрузки. Иногда 3 секунды, иногда 30 и т. Д. Текущий обходной путь - остановить tomcat и перезапустить его с помощью сценария оболочки. Мы установили флаг autodeploy и reloadable в true, но он не работает надежно. Есть идеи, как это сделать? Указатели тоже оценили. Это о Tomcat v6.0.20 на Ubuntu.

Вот выдержка из нашего файла conf / server.xml:

<Engine name="Catalina" defaultHost="localhost">

  <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
         resourceName="UserDatabase"/>

  <Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="true"
        xmlValidation="false" xmlNamespaceAware="false">

    <DefaultContext reloadable="true">
    </DefaultContext>

    <!-- SingleSignOn valve, share authentication between web applications
         Documentation at: /docs/config/valve.html -->
    <!--
    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
    -->

  </Host>
</Engine>

Ответы [ 3 ]

6 голосов
/ 22 января 2011

Одна из возможностей - отправить соответствующий запрос в Tomcat Manager App ;например, что-то вроде этого:

http://localhost:8080/manager/text/reload?path=/examples
2 голосов
/ 22 января 2011

Если у вас возникла эта проблема для разработки, я настоятельно рекомендую jetty .Он встраивается в ваш код, поэтому вы можете запустить класс в своем коде и запустить сервер для своего веб-приложения!

Вы можете отлаживать приложение в Eclipse, если используете его в качестве среды сборки (я помню отладку приложений Tomcat).в Eclipse, но я забыл, как), создайте цель сборки муравьев для запуска пристани (т.е. ant jetty) или используйте maven для запуска сервера Jetty с помощью подключаемого модуля jetty (mvn jetty: run).

С помощью Jetty вы также можете разместить сервер, аналогичный Tomcat, где вы копируете новые войны, и они немедленно вступают в силу.

Мы используем Tomcat для наших серверных приложений, потому что поддержка ему знакома, но я считаю, чторазвитие.

0 голосов
/ 09 апреля 2013

Иногда я делаю удаление папки или классов из tomcat / work / Catalina / ...

...