Tomcat не стартует приложение
Если кажется, что проблема внутри томкэта, попробуйте включить JMX в джавовской виртуальной машине. Правда для этого придется рестартовать томкэт. Затем, через jconsole можно будет подключиться и посмотреть статистику по трэдам и по томкэтовским MBeans-ам. Возможно это поможет найти зацепку.
Виснущий tomcat
И кстати, что показывает netstat? Коннекции так и висят в ESTABLISHED, и ни томкэт ни клиентская сторона их не пытается разорвать?Виснущий tomcat
Дадада,мы именно про этот файл. Вот кстати показать его могу
or entry instead.
For a similar mechanism that is portable to all Servlet 2.4
containers, check out the "RequestDumperFilter" Filter in the
example application (the source for this filter may be found in
"$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters").
Request dumping is disabled by default. Uncomment the following
element to enable it. -->
-->
replicationMode = can be either 'pooled', 'synchronous' or 'asynchronous'.
* Pooled means that the replication happens using several sockets in a synchronous way. Ie, the data gets replicated, then the request return. This is the same as the 'synchronous' setting except it uses a pool of sockets, hence it is multithreaded. This is the fastest and safest configuration. To use this, also increase the nr of tcp threads that you have dealing with replication.
* Synchronous means that the thread that executes the request, is also the
thread the replicates the data to the other nodes, and will not return until all
nodes have received the information.
* Asynchronous means that there is a specific 'sender' thread for each cluster node,
so the request thread will queue the replication request into a "smart" queue,
and then return to the client.
The "smart" queue is a queue where when a session is added to the queue, and the same session
already exists in the queue from a previous request, that session will be replaced
in the queue instead of replicating two requests. This almost never happens, unless there is a
large network delay.
-->
Виснущий tomcat
Тоесть они явно не живые, но как их без перезапуска чистить? И почему они сами не отваливаются ?
Я даже попытался установить JAVA_HOME вручную в список системных переменных, но эта проблема остается.
что я могу сделать, чтобы решить это?
я использую Windows 7.
обновление
после установки новой системной переменной с именем JAVA_HOME и установки ее пути к "C:Program FilesJavajdk1.6.0_25bin" , я снова попробовал запустить скрипт, и на этот раз я получаю новую ошибку.
есть идеи, что означает эта ошибка?
Я даже попытался установить путь к "C:Program FilesJavajdk1.6.0_25" (без bin), но та же ошибка возникает.
попробуйте установить java где - нибудь еще-в каталоге без пробелов. Установите снова JAVA_HOME переменная и повторите попытку. Я помню, что у Tomcat были некоторые проблемы в Window XP с пробелами, если какие-либо переменные он использовал при запуске содержащихся пространств. Возможно, это похоже на Windows 7.
Я помню, что мне пришлось изменить некоторые строки в классах Tomcat java, которые обрабатывали запуск Tomcat.
@Edit: Лучано избил меня, чтобы заметить это, но вы также должны удалить bin С JAVA_HOME
@Edit: Я также помню, что еще одно исправление (не проверял его сам, хотя) было установить JAVA_HOME к стенографической версии, например C:\Progra
Я думаю, что ваш JAVA_HOME должен указывать на
то есть без bin.
обновление
эта новая ошибка появляется для меня, если я устанавливаю JAVA_HOME с кавычками, как вы это сделали. Вы используете кавычки? Если да, удалите их.
избегайте точки с запятой в конце любых переменных среды. из JAVA_HOME или JRE_HOME
должно быть, как показано.
у меня был установлен Win 8 x86. Мой Path переменная запись C:\Program Files\Java\jdk1.6.0_31\bin и у меня также были следующие переменные:
- JAVA_HOME : C:\Program Files\Java\jdk1.6.0_31;
- JRE_HOME : C:\Program Files\Java\jre6;
мой tomcat установлен на C:\Program Files\Apache Software Foundation\apache-tomcat-7.0.41
и все же это не сработало для меня.
я попытался заменить Program Files в этих путях с Progra
1 . Я также попытался переместить JAVA в другую папку, чтобы полный путь к ней не содержал никаких пространства. Но ничего не помогало.
наконец переменные среды, которые работали для меня:
- сохраненная переменная пути, как и с full Program Files то есть C:\Program Files\Java\jdk1.6.0_31\bin
- JAVA_HOME : C:\Program Files\Java\jdk1.6.0_31
- удалены JRE_HOME
Итак, то, что я сделал, удалено JRE_HOME и удалена точка с запятой в конце JAVA_HOME . Я думаю, точка с запятой не должна быть проблемой, хотя я ее удалил. Я даю эти настройки, так как после большого количества googling ничего не работало для меня, и вдруг кажется, что это работает. Вы можете повторить и посмотреть, работает ли это для вас.
это также сработало для Win 7 x64, где
- переменной PATH содержится C:\Program Files (x86)\Java\jdk1.7.0_17\bin
- JAVA_HOME установлено значение C:\Program Files (x86)\Java\jdk1.7.0_17 (без semicoln)
пожалуйста, скажите мне, почему это сработало, я знаю удаление JRE_HOME было странное решение, но какие-либо догадки, какая разница?
У меня есть рабочее приложение Spring, которое содержит встроенный Tomcat. В качестве исполняемой войны работает нормально. Поскольку я собираюсь использовать AngularJ для внешнего интерфейса, не очень практично иметь проект Spring в исполняемом jar-файле, поскольку я буду выполнять отладку в браузере и хочу иметь возможность быстро редактировать исходные файлы js. Если они сохранены в архиве, это раздражает.
Вот почему я хочу сделать его развертываемым, чтобы его можно было распаковать на tomcat. Кажется, это так просто, но я не могу заставить его работать.
Очевидно, что контекст всегда загружается дважды. Из-за этого сначала я получаю исключение репозитория ( @Repository ), которое я использую (уже заблокировано), и другое исключение из spring «Невозможно инициализировать контекст, потому что уже присутствует контекст корневого приложения».
Я запутался, поскольку уже читал, это вполне нормально, что Spring создает 2 контекста, особенно с MVC. Но почему тогда исключения?
Мой класс SpringApp выглядит так
Чтобы сделать его развертываемым, я добавил в свой проект этот класс:
4 ответа
Наконец-то мне удалось запустить его со следующим POM и предлагаемым изменением кода от M.Denium и Dhanabalan:
Если вы использовали онлайн-инициализатор Spring по умолчанию, файл pom выглядит следующим образом для версии 2.3.1.RELEASE
Измените это на
Очистка кеша у меня не сработала. Единственное, что сработало, было это.
Ваша конфигурация немного запутанна и многословна, если вы используете Spring Boot.
Вам следует удалить maven-war-plugin из вашего списка плагинов. Поскольку spring-boot-maven-plugin уже заботится об этих вещах (и родитель тоже).
Затем из вашей конфигурации удалите часть кода и объедините LAuthServerApplication и ваш стартер в одно целое. И используйте @SpringBootApplication вместо отдельных аннотаций (экономия кода).
В вашем application.properties добавьте
Spring Boot уже настраивает Spring MVC для вас, и ваша система этому мешает. Не отменяйте значения по умолчанию, если у вас нет особых потребностей.
Теперь перестройте и перезапустите приложение.
Примечание. ИМХО, редактировать распакованные файлы прямо в tomcat - это очень плохая идея, так как вы действительно хотите редактировать исходные файлы. Вместо того, чтобы копаться, вы можете взглянуть на проект JHipster, который объединяет разработку JS и Spring Boot. .
Я считаю, что это связано со встроенным сервером, который поставляется с spring-boot-tomcat.
Можете ли вы исключить встроенный tomcat и попробовать? Например:
Также удалите зависимость от tomcat, которую вы указали рядом с spring-boot-starter-web.
Если у вас есть какие-либо из нижеперечисленных вопросов, то вы попали по адресу:
Я настроил tomcat as Windows Service , Запуск Tomcat в качестве службы Windows предоставляет ряд преимуществ, которые необходимы при переходе от настройки разработки к производственной среде .
Преимущество-1) Настройка надежного автоматического запуска при загрузке
- Необходим в среде, где вы можете захотеть удаленно перезагрузить систему Java после технического обслуживания, не беспокоясь о том, вернется ли ваш сервер в оперативный режим.
Преимущество-2) Настройка запуска сервера Tomcat без входа активного пользователя
- В центре обработки данных не стоит ожидать активного входа в систему от системы только для запуска Tomcat. Фактически Tomcat часто запускается на блейд-серверах, к которым может даже не подключаться активный монитор. Службы Windows принадлежат Системе и могут быть запущены без активного пользователя.
Выгода-3) Лучшая безопасность
Недавно я хотел start/stop Мой сервер Tomcat через командную строку, как хотел создать быстрый сценарий, чтобы сделать это. Официальная документация приведена ниже команд в виде // XX // ServiceNameДоступные параметры командной строки:
- // TS // Запустите службу как консольное приложение. Это операция по умолчанию. Вызывается, если опция no указана. ServiceName - это имя исполняемого файла без суффикса exe, что означает Tomcat6
- // RS // Запустить сервис Вызывается только из ServiceManager
- // SS // Остановить службу
- //НАС// Обновить параметры сервиса
- //ЯВЛЯЕТСЯ// Установить сервис
- // DS // Удалить службу Останавливает службу, если запущена
Но, скорее, делая это так, я обнаружил, что команды ниже очень полезны и просты.
Читайте также: