【问题标题】:Unable to deploy tomcat server with Spring boot无法使用 Spring Boot 部署 tomcat 服务器
【发布时间】:2018-06-07 11:15:45
【问题描述】:

几天来,我一直在尝试使用 Spring Boot 部署我的 tomcat 服务器,但我一生都无法弄清楚我的配置有什么问题。我在网上查看了一些建议,但我仍然无法弄清楚我做错了什么。我有一种感觉,这可能是一件小事,但在这一点上,我认为我没有解决这个问题

我有我的 maven 配置文件,并试图利用 apache tomcat maven 插件来部署我的服务器。

http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0

        <groupId>com.blah.maven</groupId>
        <artifactId>blah</artifactId>
        <version>1.0-SNAPSHOT</version>
        <packaging>war</packaging>
        <name>foo</name>

        <properties>
            <springframework.boot.version>1.5.9.RELEASE</springframework.boot.version>
        </properties>

        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.5.9.RELEASE</version>
        </parent>

        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <!-- <scope>provided</scope> -->
            </dependency>
        </dependencies>

        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <url>http://localhost:8080/manager/text</url>
                        <path>/blah</path>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <version>${springframework.boot.version}</version>
                </plugin>
            </plugins>
        </build>


    </project>

在我的项目中,我有一个应用程序类

    package foo;

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.builder.SpringApplicationBuilder;
    import org.springframework.boot.web.support.SpringBootServletInitializer;
    import org.springframework.web.WebApplicationInitializer;

    @SpringBootApplication
    public class Application extends SpringBootServletInitializer implements WebApplicationInitializer {

        public static void main(String [] args){
            SpringApplication.run(Application.class, args);
        }

        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application){
            return application.sources(Application.class);
        }
    }

这是我的堆栈的屏幕截图

[ERROR] 未能执行目标 org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy (default-cli) 在 whot 项目上:无法调用 Tomcat 管理器:连接被拒绝 (连接被拒绝)-> [帮助 1] org.apache.maven.lifecycle.LifecycleExecutionException: 失败 执行目标 org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy 项目 whot 上的 (default-cli):无法在以下位置调用 Tomcat 管理器 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212) 在 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:116) 在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) 在 org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) 在 org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) 在 org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) 在 org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) 在 org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) 在 org.apache.maven.cli.MavenCli.execute(MavenCli.java:863) 在 org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) 在 org.apache.maven.cli.MavenCli.main(MavenCli.java:199) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 在 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 在 org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 在 org.codehaus.classworlds.Launcher.main(Launcher.java:47) 引起 作者:org.apache.maven.plugin.MojoExecutionException:无法调用 Tomcat 经理 org.apache.tomcat.maven.plugin.tomcat7.AbstractCatalinaMojo.execute(AbstractCatalinaMojo.java:141) 在 org.apache.tomcat.maven.plugin.tomcat7.AbstractWarCatalinaMojo.execute(AbstractWarCatalinaMojo.java:68) 在 org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) ... 21 更多原因:java.net.ConnectException: Connection 拒绝(连接被拒绝)在 java.net.PlainSocketImpl.socketConnect(Native Method) 在 java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 在 java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 在 java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 在 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 在 java.net.Socket.connect(Socket.java:589) 在 org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:117) 在 org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:178) 在 org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:304) 在 org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:610) 在 org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:445) 在 org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:863) 在 org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) 在 org.apache.tomcat.maven.common.deployer.TomcatManager.invoke(TomcatManager.java:742) 在 org.apache.tomcat.maven.common.deployer.TomcatManager.deployImpl(TomcatManager.java:705) 在 org.apache.tomcat.maven.common.deployer.TomcatManager.deploy(TomcatManager.java:388) 在 org.apache.tomcat.maven.plugin.tomcat7.deploy.AbstractDeployWarMojo.deployWar(AbstractDeployWarMojo.java:85) 在 org.apache.tomcat.maven.plugin.tomcat7.deploy.AbstractDeployMojo.invokeManager(AbstractDeployMojo.java:82) 在 org.apache.tomcat.maven.plugin.tomcat7.AbstractCatalinaMojo.execute(AbstractCatalinaMojo.java:132) ... 24 更多 [错误] [错误] [错误] 有关更多信息 错误和可能的解决方案,请阅读以下文章: [错误] [帮助 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

【问题讨论】:

  • 拜托,你能分享一下错误吗?
  • 连接被拒绝(Connection denied):你配置Tomcat Authentication了吗?

标签: java spring maven tomcat spring-boot-maven-plugin


【解决方案1】:

可能您需要配置 Tomcat 身份验证。

按照这个例子 https://www.mkyong.com/maven/how-to-deploy-maven-based-war-file-to-tomcat

在 Maven 方面:

【讨论】:

    【解决方案2】:

    这完全是我的脑残。我试图在没有实际运行 tomcat 实例的情况下部署应用程序(mvn tomcat:deploy)。我真正想做的是在我的 maven 项目中创建并运行一个 tomcat 实例(mvn tomcat: run)。

    不敢相信我在如此微不足道的事情上花了很多时间。好吧,生活和学习。

    【讨论】:

      猜你喜欢
      • 2017-11-27
      • 1970-01-01
      • 2016-04-03
      • 2021-11-06
      • 2014-01-21
      • 1970-01-01
      • 2020-11-27
      • 2021-10-26
      • 2018-06-26
      相关资源
      最近更新 更多