Не удалось выполнить цель tomcat: развернуть Ошибка записи на сервер

Я пытаюсь протестировать spring -mvc учебник здесь.

Я хотел бы развернуть созданную войну на tomcat 7 с помощью eclipse-maven.

Война отлично работает при развертывании вручную на tomcat.

Этапы:

  • проект импорта на eclipse
  • добавьте этот плагин в существующий POM:

    <plugin>
                 <groupId>org.codehaus.mojo</groupId>
                 <artifactId>tomcat-maven-plugin</artifactId>
                <version>1.1</version>
                <configuration>
                    <mode>war</mode>
                    <url>http://localhost:8080/manager/html/</url>
                    <server>TomcatServer</server>
                    <path>/springexample</path>
                  </configuration>
    

  • настройте новый сервер tomcat в eclipse с именем TomcatServer

изменить файл tomcat-users.xml: включить пользователя admin:

<tomcat-users>
    <role rolename="admin"/>
    <role rolename="standard"/>
    <role rolename="manager-gui"/>
    <role rolename="manager"/>
    <role rolename="tomcat"/>
    <role rolename="manager-script"/>
    <user password="password" roles="standard,manager,admin,manager-gui,manager-script,tomcat" username="admin"/>
</tomcat-users>
  • Добавьте конфигурацию сервера в файл конфигурации settings.xml в .m2 папка пользователя:

      TomcatServer   админ   пароль

  • Сервер Strat tomcat

Когда я выполняю следующие цели:

Источники генерации Maven: для создания файла войны

затем Запустите конфигурацию → с целью:

кот: развернуть

ошибка:

[

ОШИБКА] Не удалось выполнить цель org.codehaus.mojo: tomcat-maven-plugin: 1.1: redeploy (default-cli) on project springexample: не удается вызвать диспетчера Tomcat: ошибка при записи на сервер → [Помощь 1] org.apache.maven.lifecycle.LifecycleExecutionException: не удалось выполнить цель org.codehaus.mojo: tomcat-maven-plugin: 1.1: передислоцировать (default-cli) в проекте springexample: невозможно вызвать диспетчера Tomcat   в org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)   в org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)   в org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)   в org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)   в org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)   в org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)   в org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)   на org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) в org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) в org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke(Неизвестный источник) в sun.reflect.DelegatingMethodAccessorImpl.invoke(Неизвестный источник) в java.lang.reflect.Method.invoke(Неизвестный источник) в org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)   в org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)   в org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)   в org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) Причина: org.apache.maven.plugin.MojoExecutionException: не удается вызвать менеджера Tomcat в org.codehaus.mojo.tomcat.AbstractCatalinaMojo.execute(AbstractCatalinaMojo.java:149)   в org.codehaus.mojo.tomcat.AbstractWarCatalinaMojo.execute(AbstractWarCatalinaMojo.java:70)   в org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)   в org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)   ... 19 more Причиняется: java.io.IOException: Ошибка записи на сервер   на sun.net.www.protocol.http.HttpURLConnection.writeRequests(Неизвестно Источник) в sun.net.www.protocol.http.HttpURLConnection.writeRequests(Неизвестно Источник) в sun.net.www.protocol.http.HttpURLConnection.getInputStream(Неизвестно Источник) в org.codehaus.mojo.tomcat.TomcatManager.invoke(TomcatManager.java:604)   в org.codehaus.mojo.tomcat.TomcatManager.deployImpl(TomcatManager.java:662)   в org.codehaus.mojo.tomcat.TomcatManager.deploy(TomcatManager.java:295)   в org.codehaus.mojo.tomcat.AbstractDeployWarMojo.deployWar(AbstractDeployWarMojo.java:85)   в org.codehaus.mojo.tomcat.AbstractDeployMojo.invokeManager(AbstractDeployMojo.java:85)   в org.codehaus.mojo.tomcat.AbstractCatalinaMojo.execute(AbstractCatalinaMojo.java:141)   ... 22 подробнее [ОШИБКА] [ОШИБКА] [ОШИБКА] Для получения дополнительной информации о ошибок и возможных решений, пожалуйста, прочитайте следующие статьи: [ОШИБКА] [Помощь 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

Ответ 1

В моем случае сработала команда tomcat7 для развертывания:

tomcat7:deploy

И вы не должны использовать:

tomcat:deploy

Ответ 2

Моя проблема была связана с тем, что файл WAR был более 50 МБ. Вам нужно установить конфигурацию в web.xml из диспетчера tomcat.

Обычно файл находится в папке% tomcat%\webapps\manager\WEB-INF\web.xml

<multipart-config>
  <!-- 50MB max -->
  <max-file-size>52428800</max-file-size>
  <max-request-size>52428800</max-request-size>
  <file-size-threshold>0</file-size-threshold>
</multipart-config>

Ответ 3

Вы должны сосредоточиться на эффектах

Caused by: java.io.IOException: Error writing to server 
at sun.net.www.protocol.http.HttpURLConnection.writeRequests(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.writeRequests(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) 
at org.codehaus.mojo.tomcat.TomcatManager.invoke(TomcatManager.java:604)

Посмотрите на источник для TomcatManager (http://mojo.codehaus.org/tomcat-maven-plugin/xref/org/codehaus/mojo/tomcat/TomcatManager.html#672)

Плагин maven не может читать с сервера. Он соединяется, строка 597, записывает данные, строка 601, но не работает, когда считывает ответ, строка 604

Я попытался бы сначала развернуть на сервере (чтобы избавиться от сетевых проблем) и посмотреть, не исчезла ли проблема.

Ответ 4

тег комментария Valve в файлах context.xml

<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

в каталоге tomcat есть несколько файлов context.xml, обновите следующие файлы context.xml и перезапустите tomcat service-

  • /apache-tomcat-8.5.41/webapps/manager/META-INF/context.xml
  • /apache-tomcat-8.5.41/webapps/host-manager/META-INF/context.xml