java - 亚马逊 AWS,使用 maven 将 war 部署到 tomcat 8

标签 java maven amazon-web-services tomcat

我正在使用 codehaus.mojo 库并尝试将我的 war 文件部署到服务器。我在一些教程中这样做了,但我不知道它是否适用于亚马逊。

我已经添加了用户:

<tomcat-users>
  <role rolename="manager"/>
  <user username="test" password="test" roles="manager"/>
</tomcat-users>

编辑的 settings.xml:

<server>
        <id>mytomcat</id>
        <username>test</username>
        <password>test</password>
</server>

添加到 pom.xml 插件:

<plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>tomcat-maven-plugin</artifactId>
                <configuration>
                    <url>http://35.164.242.196/manager</url>
                    <server>mytomcat</server>
                    <path>/test</path>
                </configuration>
            </plugin>

我有这样的错误:

[ERROR] Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:deploy (default-cli) on project springwebapp: Cannot invoke Tomcat manager: Error writing to server -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:deploy (default-cli) on project springwebapp: Cannot invoke Tomcat manager
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: Cannot invoke Tomcat manager
        at org.codehaus.mojo.tomcat.AbstractCatalinaMojo.execute(AbstractCatalinaMojo.java:149)
        at org.codehaus.mojo.tomcat.AbstractWarCatalinaMojo.execute(AbstractWarCatalinaMojo.java:70)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
        ... 20 more
Caused by: java.io.IOException: Error writing to server
        at sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:699)
        at sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:711)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1567)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
        at org.codehaus.mojo.tomcat.TomcatManager.invoke(TomcatManager.java:604)
        at org.codehaus.mojo.tomcat.TomcatManager.deployImpl(TomcatManager.java:662)
        at org.codehaus.mojo.tomcat.TomcatManager.deploy(TomcatManager.java:295)
        at org.codehaus.mojo.tomcat.AbstractDeployWarMojo.deployWar(AbstractDeployWarMojo.java:85)
        at org.codehaus.mojo.tomcat.AbstractDeployMojo.invokeManager(AbstractDeployMojo.java:85)
        at org.codehaus.mojo.tomcat.AbstractCatalinaMojo.execute(AbstractCatalinaMojo.java:141)
        ... 23 more

我已经检查了 webapps/manager/WEB-INF/web.xml 的最大文件大小,并增加了它,尽管我的 war 小于 47mb。

最佳答案

我向 tomcat-users 添加了一个角色为“manager-script”的用户。当然,我已经根据新角色编辑了 settings.xml,成功了!

附言要重新加载现有项目,请使用重新部署命令。

https://stackoverflow.com/a/16292897/5651564

关于java - 亚马逊 AWS,使用 maven 将 war 部署到 tomcat 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45421764/

相关文章:

java - ObjectInputStream 自定义类加载器反序列化问题 : resolveClass() not called

java - 了解 spring 4 (spring-context) maven 依赖

java - Maven/Scala : Filename is too long

amazon-web-services - 使用有限策略授予对 AWS Lambda 服务的访问权限

java LinkedList 的 LinkedList.isEmpty() 方法无法正常工作?

java - 如何在 JPanel 失去焦点后保持按下 JButton

java - Android Geocoder getFromLocationName 因有效地址而失败

ios - 如何从亚马逊 SNS 主题取消订阅 iOS 设备?

amazon-web-services - 无法创建具有嵌套资源的 Cloudformation 堆栈