【问题标题】:Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin::run未能执行目标 org.codehaus.mojo:tomcat-maven-plugin::run
【发布时间】:2014-09-04 20:09:33
【问题描述】:

我有一个新的 Spring 项目,我使用 maven 创建它。 我的运行配置是 base directory :${project_loc}goals : tomcat:run 的 Maven 构建。 当我第一次运行我的项目时它没问题。但是当我再次运行它时,它会显示这个错误:

java.net.BindException: Address already in use: JVM_Bind <null>:8080
    at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:549)
    at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:176)
    at org.apache.catalina.connector.Connector.initialize(Connector.java:1014)
    at org.apache.catalina.startup.Embedded.start(Embedded.java:830)
    at org.codehaus.mojo.tomcat.AbstractRunMojo.startContainer(AbstractRunMojo.java:558)
    at org.codehaus.mojo.tomcat.AbstractRunMojo.execute(AbstractRunMojo.java:255)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
    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:108)
    at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call(MultiThreadedBuilder.java:188)
    at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call(MultiThreadedBuilder.java:184)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.BindException: Address already in use: JVM_Bind
    at java.net.DualStackPlainSocketImpl.bind0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:106)
    at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:382)
    at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:190)
    at java.net.ServerSocket.bind(ServerSocket.java:375)
    at java.net.ServerSocket.<init>(ServerSocket.java:237)
    at java.net.ServerSocket.<init>(ServerSocket.java:181)
    at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:50)
    at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:538)
    ... 18 more

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.784 s (Wall Clock)
[INFO] Finished at: 2014-09-04T23:29:23+03:30
[INFO] Final Memory: 17M/84M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:run (default-cli) on project javaCodeGeeks: Could not start Tomcat: Protocol handler initialization failed: java.net.BindException: Address already in use: JVM_Bind <null>:8080 -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

当我关闭 eclipse 并再次打开它时,没关系! 也许这是一个简单的问题,但我是 maven 和 tomcat 的新手。

【问题讨论】:

    标签: java eclipse spring maven tomcat


    【解决方案1】:

    我想你在第二次尝试之前还没有杀死你的最后一个应用程序。如果您运行该应用程序,它会在您的本地计算机上保留一个端口。所以如果你再试一次,你会得到一个错误。如果您想同时拥有两个应用程序,它们应该使用不同的端口。如果只需要一个,请确保只运行一次。

    【讨论】:

    • “应用程序”是指您的应用程序服务器。 tomcat:run 尝试再次运行服务器
    • 我应该使用 tomcat:run 还是其他目标?
    • 你可以使用它,但是当你第一次运行它时,只要记住在再次调用tomcat:run之前释放地址(杀死服务器)
    • 对不起,我是新来的。我怎样才能杀死服务器?在这种情况下,eclipse 没有在 server tab 中显示正在运行的服务器。我怎样才能杀死这个项目中正在运行的服务器?
    猜你喜欢
    • 2014-04-14
    • 2013-04-20
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    • 2017-04-22
    • 2019-08-07
    • 2012-11-13
    • 2012-09-04
    相关资源
    最近更新 更多