IntelliJ IDEA 13.0.3 и Tomcat 8.0.9. Не могу заставить его работать
Я пытаюсь развернуть веб-приложение Java, работающее на Tomcat. Я получил книгу
Профессиональная Java для веб-приложений: создание веб-сайтов, Spring Framework, JPA Hibernate и Spring Безопасность
и я сделал все, чтобы IntelliJ IDEA 13 работал вместе с Tomcat 8.0.9. Я проверил контейнер сервера вручную, и он отлично работает, даже развертывание .war файлов отлично работает. Однако, когда я перехожу к запуску/отладке веб-приложения, в этом случае первый пример формирует книгу - из IntelliJ приложение не запускается. Вывод в Tomcat Log не говорит много.
Вывод сервера говорит мне следующее:
Connected to server
[2014-08-08 09:17:35,075] Artifact Sample-Debug-IntelliJ:war exploded: Artifact is being deployed, please wait...
[2014-08-08 09:17:35,097] Artifact Sample-Debug-IntelliJ:war exploded: Error during artifact deployment. See server log for details.
[2014-08-08 09:17:35,098] Artifact Sample-Debug-IntelliJ:war exploded: com.intellij.javaee.oss.admin.jmx.JmxAdminException: com.intellij.execution.ExecutionException: L:\java-dev\java_web_apps_chapter_code\9781118656464 Full Code\Chapter 02\Sample-Debug- IntelliJ\target\sample-debug-intellij-1.0.0.SNAPSHOT not found for the web module.
08-Aug-2014 21:17:44.671 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory L:\java-dev\apache-tomcat-8.0.9\webapps\manager
08-Aug-2014 21:17:44.939 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory L:\java-dev\apache-tomcat-8.0.9\webapps\manager has finished in 268 ms
Tomcat Catalina Log выводит это:
08-Aug-2014 22:56:35.843 INFO [main] org.apache.catalina.core.AprLifecycleListener.init Loaded APR based Apache Tomcat Native library 1.1.30 using APR version 1.4.8.
08-Aug-2014 22:56:35.846 INFO [main] org.apache.catalina.core.AprLifecycleListener.init APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
08-Aug-2014 22:56:36.652 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized (OpenSSL 1.0.1g 7 Apr 2014)
08-Aug-2014 22:56:36.738 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-apr-8080"]
08-Aug-2014 22:56:36.746 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-apr-8009"]
08-Aug-2014 22:56:36.747 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 1060 ms
08-Aug-2014 22:56:36.771 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service Catalina
08-Aug-2014 22:56:36.771 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.0.9
08-Aug-2014 22:56:36.778 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-apr-8080"]
08-Aug-2014 22:56:36.784 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-apr-8009"]
08-Aug-2014 22:56:36.785 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 38 ms
08-Aug-2014 22:56:46.785 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory L:\java-dev\apache-tomcat-8.0.9\webapps\manager
08-Aug-2014 22:56:47.035 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory L:\java-dev\apache-tomcat-8.0.9\webapps\manager has finished in 251 ms
Я пробовал как в Windows, так и в OSX, и это одна и та же история с одинаковой ошибкой.
Когда я обращаюсь к http://localhost:8080/
, я вижу, что сервер запущен и работает. Однако приложение не развернуто.
Кто-нибудь испытывает ту же ошибку, что и я, и/или знает решение?
Я запускаю IntelliJ IDEA 13.0.3, Java 1.8.0_11 и Tomcat 8.0.9.
EDIT: Я также пробовал с IntelliJ IDEA 13.1.4. Не имеет значения.
Сделанные шаги
- Загружена Java 1.8.0_11, установлена и добавлена в переменные среды.
-
Загрузили Tomcat, распаковали его и внесли в него следующие изменения (шаг 2-4);
В conf/tomcat-users.xml
я добавил этого пользователя:
<user username="admin" password="admin" roles="manager-gui,admin-gui" />
-
В conf/web.xml
я добавил код ниже под элементом org.apache.jasper.servlet.jspServlet
<init-param>
<param-name>compilerSourceVM</param-name>
<param-value>1.8</param-value>
</init-param>
<init-param>
<param-name>compilerTargetVM</param-name>
<param-value>1.8</param-value>
</init-param>
<init-param>
<param-name>compiler</param-name>
<param-value>modern</param-value>
</init-param>
-
Загрузили apache- ant и добавили файл setenv.bat
в каталог apache-tomcat/bin
со следующим script
export CLASSPATH=L:/java-dev/jdk8/lib/tools.jar:L:/java-dev/apache-ant/lib/ant.jar:L:/java-dev/apache-ant/lib/ant-launcher.jar
-
Запустил IntelliJ и добавил сервер приложений Tomcat.
-
Затем я импортировал проект и установил его для использования сервера Tomcat, который я только что добавил.
ОБНОВЛЕНИЕ: 2014-08-09 16:22
Я попытался развернуть веб-приложение JavaEE, которое было создано IntelliJ, и это сработало сразу. Кажется, что-то не так с исходным кодом, на который ссылается книга.
Ответы
Ответ 1
У меня была аналогичная проблема. Проблема заключалась в конфигурации артефакта в конфигурациях Run/Debug. Мне пришлось удалить артефакт проекта и прочитать его. Важно выбрать веб-приложение: взорванное, из модулей...
Вы можете прочитать мой пост в блоге, содержащий скриншоты об этой проблеме.
Ответ 2
Для меня это сработало с:
Файл > Структура проектa > Артефакты в Макет вывода в правой части > "Доступные элементы?"
щелкните правой кнопкой мыши доступные библиотеки (для меня это было "Spring MVC-4.2.4.RELEASE" )
Поместите в Lib (на самом деле нажмите кнопку предупреждения об ошибке)
И это сработало.
Ответ 3
Откройте "Конфигурация отладки" в IntelliJ IDEA и убедитесь, что установлен флажок "Развернуть приложения, настроенные в Tomcat", как показано на скриншоте
Ответ 4
- откройте диалоговое окно конфигурации артефакта (артефакт> изменить...)
- установите флажок "Показать содержимое элементов" в нижней части диалогов
- выделите каталог "WEB-INF"
- щелкните правой кнопкой мыши на контейнере библиотеки (на правой панели)
- выберите из контекстного меню "положить в /WEB-INF/lib"
-
папка lib добавлена в макет вывода
-
восстановить артефакт
- перезапустить веб-сервер
Надеюсь, поможет.
![screenshot]()
![screenshot 2]()
![screenshot 4]()
![screenshot 3]()
Ответ 5
У меня была похожая проблема, и это работает. см. https://www.jianshu.com/p/d02de3e2b760