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

  1. откройте диалоговое окно конфигурации артефакта (артефакт> изменить...)
  2. установите флажок "Показать содержимое элементов" в нижней части диалогов
  3. выделите каталог "WEB-INF"
  4. щелкните правой кнопкой мыши на контейнере библиотеки (на правой панели)
  5. выберите из контекстного меню "положить в /WEB-INF/lib"
  6. папка lib добавлена в макет вывода

  7. восстановить артефакт

  8. перезапустить веб-сервер

Надеюсь, поможет.

screenshot

screenshot 2

screenshot 4

screenshot 3