Ответ 1
В моем случае сработала команда tomcat7 для развертывания:
tomcat7:deploy
И вы не должны использовать:
tomcat:deploy
Я пытаюсь протестировать spring -mvc учебник здесь.
Я хотел бы развернуть созданную войну на tomcat 7 с помощью eclipse-maven.
Война отлично работает при развертывании вручную на tomcat.
Этапы:
добавьте этот плагин в существующий 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
В моем случае сработала команда tomcat7 для развертывания:
tomcat7:deploy
И вы не должны использовать:
tomcat:deploy
Моя проблема была связана с тем, что файл 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>
Вы должны сосредоточиться на эффектах
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
Я попытался бы сначала развернуть на сервере (чтобы избавиться от сетевых проблем) и посмотреть, не исчезла ли проблема.
тег комментария 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-