Lanzamiento de la aplicación Spring La dirección ya está en uso

96

Tengo este error al iniciar mi aplicación de primavera:

java -jar target/gs-serving-web-content-0.1.0.jar

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::             (v0.5.0.M6)

2013-12-23 00:23:09.466  INFO 19252 --- [           main] hello.Application                        : Starting Application on mbp-de-antoine.home with PID 19252 (/Users/antoine/Documents/workspace-sts-3.4.0.RELEASE/springapp/target/gs-serving-web-content-0.1.0.jar started by antoine)
2013-12-23 00:23:09.511  INFO 19252 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@24024c39: startup date [Mon Dec 23 00:23:09 CET 2013]; root of context hierarchy
2013-12-23 00:23:10.910  INFO 19252 --- [           main] o.apache.catalina.core.StandardService   : Starting service Tomcat
2013-12-23 00:23:10.910  INFO 19252 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/7.0.42
2013-12-23 00:23:11.045  INFO 19252 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2013-12-23 00:23:11.046  INFO 19252 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1537 ms
2013-12-23 00:23:11.274  INFO 19252 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring FrameworkServlet 'dispatcherServlet'
2013-12-23 00:23:11.274  INFO 19252 --- [ost-startStop-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization started
2013-12-23 00:23:11.409  INFO 19252 --- [ost-startStop-1] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2013-12-23 00:23:11.634  INFO 19252 --- [ost-startStop-1] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/greeting],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String hello.GreetingController.greeting(java.lang.String,org.springframework.ui.Model)
2013-12-23 00:23:11.717  INFO 19252 --- [ost-startStop-1] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2013-12-23 00:23:11.717  INFO 19252 --- [ost-startStop-1] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2013-12-23 00:23:12.406  INFO 19252 --- [ost-startStop-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization completed in 1132 ms
2013-12-23 00:23:12.417 ERROR 19252 --- [           main] o.a.coyote.http11.Http11NioProtocol      : Failed to start end point associated with ProtocolHandler ["http-nio-8080"]

java.net.BindException: Address already in use
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:444)
    at sun.nio.ch.Net.bind(Net.java:436)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
    at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:473)
    at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:617)
    at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:444)
    at org.apache.catalina.connector.Connector.startInternal(Connector.java:1010)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:459)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.startup.Tomcat.start(Tomcat.java:335)
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:58)
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.<init>(TomcatEmbeddedServletContainer.java:53)
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getTomcatEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:259)
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:140)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:158)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:135)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:476)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:552)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:293)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:749)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:738)
    at hello.Application.main(Application.java:12)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:53)
    at java.lang.Thread.run(Thread.java:744)

2013-12-23 00:23:12.419 ERROR 19252 --- [           main] o.apache.catalina.core.StandardService   : Failed to start connector [Connector[org.apache.coyote.http11.Http11NioProtocol-8080]]

org.apache.catalina.LifecycleException: Failed to start component [Connector[org.apache.coyote.http11.Http11NioProtocol-8080]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:459)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.startup.Tomcat.start(Tomcat.java:335)
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:58)
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.<init>(TomcatEmbeddedServletContainer.java:53)
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getTomcatEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:259)
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:140)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:158)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:135)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:476)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:552)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:293)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:749)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:738)
    at hello.Application.main(Application.java:12)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:53)
    at java.lang.Thread.run(Thread.java:744)
Caused by: org.apache.catalina.LifecycleException: service.getName(): "Tomcat";  Protocol handler start failed
    at org.apache.catalina.connector.Connector.startInternal(Connector.java:1017)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 24 common frames omitted
Caused by: java.net.BindException: Address already in use
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:444)
    at sun.nio.ch.Net.bind(Net.java:436)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
    at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:473)
    at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:617)
    at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:444)
    at org.apache.catalina.connector.Connector.startInternal(Connector.java:1010)
    ... 25 common frames omitted

2013-12-23 00:23:12.420  INFO 19252 --- [           main] o.apache.catalina.core.StandardService   : Stopping service Tomcat
2013-12-23 00:23:12.430  INFO 19252 --- [           main] nitializer$AutoConfigurationReportLogger : 


=========================
AUTO-CONFIGURATION REPORT
=========================


Positive matches:
-----------------

   MessageSourceAutoConfiguration
      - @ConditionalOnMissingBean (types: org.springframework.context.MessageSource; SearchStrategy: all) found no beans (OnBeanCondition)

   PropertyPlaceholderAutoConfiguration#propertySourcesPlaceholderConfigurer
      - @ConditionalOnMissingBean (types: org.springframework.context.support.PropertySourcesPlaceholderConfigurer; SearchStrategy: current) found no beans (OnBeanCondition)

   ThymeleafAutoConfiguration
      - @ConditionalOnClass classes found: org.thymeleaf.spring3.SpringTemplateEngine (OnClassCondition)
      - @ConditionalOnClass classes found: org.thymeleaf.spring3.SpringTemplateEngine (OnClassCondition)

   ThymeleafAutoConfiguration.DefaultTemplateResolverConfiguration
      - @ConditionalOnMissingBean (names: defaultTemplateResolver; SearchStrategy: all) found no beans (OnBeanCondition)

   ThymeleafAutoConfiguration.ThymeleafDefaultConfiguration
      - @ConditionalOnMissingBean (types: org.thymeleaf.spring3.SpringTemplateEngine; SearchStrategy: all) found no beans (OnBeanCondition)

   ThymeleafAutoConfiguration.ThymeleafViewResolverConfiguration
      - @ConditionalOnClass classes found: javax.servlet.Servlet (OnClassCondition)
      - @ConditionalOnClass classes found: javax.servlet.Servlet (OnClassCondition)

   ThymeleafAutoConfiguration.ThymeleafViewResolverConfiguration#thymeleafViewResolver
      - @ConditionalOnMissingBean (names: thymeleafViewResolver; SearchStrategy: all) found no beans (OnBeanCondition)

   DispatcherServletAutoConfiguration
      - found web application StandardServletEnvironment (OnWebApplicationCondition)
      - @ConditionalOnClass classes found: org.springframework.web.servlet.DispatcherServlet (OnClassCondition)
      - found web application StandardServletEnvironment (OnWebApplicationCondition)
      - @ConditionalOnClass classes found: org.springframework.web.servlet.DispatcherServlet (OnClassCondition)
      - @ConditionalOnBean (types: org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; SearchStrategy: all) found the following [tomcatEmbeddedServletContainerFactory] (OnBeanCondition)

   DispatcherServletAutoConfiguration#dispatcherServlet
      - no DispatcherServlet found (DispatcherServletAutoConfiguration.DefaultDispatcherServletCondition)

   EmbeddedServletContainerAutoConfiguration
      - found web application StandardServletEnvironment (OnWebApplicationCondition)
      - found web application StandardServletEnvironment (OnWebApplicationCondition)

   EmbeddedServletContainerAutoConfiguration.EmbeddedTomcat
      - @ConditionalOnClass classes found: javax.servlet.Servlet,org.apache.catalina.startup.Tomcat (OnClassCondition)
      - @ConditionalOnClass classes found: javax.servlet.Servlet,org.apache.catalina.startup.Tomcat (OnClassCondition)
      - @ConditionalOnMissingBean (types: org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; SearchStrategy: current) found no beans (OnBeanCondition)

   ServerPropertiesAutoConfiguration#serverProperties
      - @ConditionalOnMissingBean (types: org.springframework.boot.context.embedded.properties.ServerProperties; SearchStrategy: all) found no beans (OnBeanCondition)

   WebMvcAutoConfiguration
      - found web application StandardServletEnvironment (OnWebApplicationCondition)
      - @ConditionalOnClass classes found: javax.servlet.Servlet,org.springframework.web.servlet.DispatcherServlet,org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter (OnClassCondition)
      - found web application StandardServletEnvironment (OnWebApplicationCondition)
      - @ConditionalOnClass classes found: javax.servlet.Servlet,org.springframework.web.servlet.DispatcherServlet,org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter (OnClassCondition)
      - @ConditionalOnMissingBean (types: org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; SearchStrategy: all) found no beans (OnBeanCondition)

   WebMvcAutoConfiguration#hiddenHttpMethodFilter
      - @ConditionalOnMissingBean (types: org.springframework.web.filter.HiddenHttpMethodFilter; SearchStrategy: all) found no beans (OnBeanCondition)

   WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#defaultViewResolver
      - @ConditionalOnMissingBean (types: org.springframework.web.servlet.view.InternalResourceViewResolver; SearchStrategy: all) found no beans (OnBeanCondition)


Negative matches:
-----------------

   RabbitAutoConfiguration
      - required @ConditionalOnClass classes not found: org.springframework.amqp.rabbit.core.RabbitTemplate,com.rabbitmq.client.Channel (OnClassCondition)

   AopAutoConfiguration
      - required @ConditionalOnClass classes not found: org.aspectj.lang.annotation.Aspect,org.aspectj.lang.reflect.Advice (OnClassCondition)

   BatchAutoConfiguration
      - required @ConditionalOnClass classes not found: org.springframework.batch.core.launch.JobLauncher (OnClassCondition)

   JpaRepositoriesAutoConfiguration
      - required @ConditionalOnClass classes not found: org.springframework.data.jpa.repository.JpaRepository (OnClassCondition)

   MongoRepositoriesAutoConfiguration
      - required @ConditionalOnClass classes not found: com.mongodb.Mongo,org.springframework.data.mongodb.repository.MongoRepository (OnClassCondition)

   DataSourceAutoConfiguration
      - required @ConditionalOnClass classes not found: org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType (OnClassCondition)

   DataSourceTransactionManagerAutoConfiguration
      - required @ConditionalOnClass classes not found: org.springframework.jdbc.core.JdbcTemplate,org.springframework.transaction.PlatformTransactionManager (OnClassCondition)

   JmsTemplateAutoConfiguration
      - required @ConditionalOnClass classes not found: org.springframework.jms.core.JmsTemplate,javax.jms.ConnectionFactory (OnClassCondition)

   DeviceResolverAutoConfiguration
      - required @ConditionalOnClass classes not found: org.springframework.mobile.device.DeviceResolverHandlerInterceptor,org.springframework.mobile.device.DeviceHandlerMethodArgumentResolver (OnClassCondition)

   HibernateJpaAutoConfiguration
      - required @ConditionalOnClass classes not found: org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean,org.springframework.transaction.annotation.EnableTransactionManagement,javax.persistence.EntityManager,org.hibernate.ejb.HibernateEntityManager (OnClassCondition)

   ReactorAutoConfiguration
      - required @ConditionalOnClass classes not found: reactor.spring.context.config.EnableReactor (OnClassCondition)

   ThymeleafAutoConfiguration.ThymeleafSecurityDialectConfiguration
      - required @ConditionalOnClass classes not found: org.thymeleaf.extras.springsecurity3.dialect.SpringSecurityDialect (OnClassCondition)

   ThymeleafAutoConfiguration.ThymeleafWebLayoutConfiguration
      - required @ConditionalOnClass classes not found: nz.net.ultraq.thymeleaf.LayoutDialect (OnClassCondition)

   EmbeddedServletContainerAutoConfiguration.EmbeddedJetty
      - required @ConditionalOnClass classes not found: org.eclipse.jetty.server.Server,org.eclipse.jetty.util.Loader (OnClassCondition)

   MultipartAutoConfiguration
      - @ConditionalOnClass classes found: javax.servlet.Servlet,org.springframework.web.multipart.support.StandardServletMultipartResolver (OnClassCondition)
      - @ConditionalOnClass classes found: javax.servlet.Servlet,org.springframework.web.multipart.support.StandardServletMultipartResolver (OnClassCondition)
      - @ConditionalOnBean (types: javax.servlet.MultipartConfigElement; SearchStrategy: all) found no beans (OnBeanCondition)

   WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#beanNameViewResolver
      - @ConditionalOnBean (types: org.springframework.web.servlet.View; SearchStrategy: all) found no beans (OnBeanCondition)

   WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#viewResolver
      - @ConditionalOnBean (types: org.springframework.web.servlet.View; SearchStrategy: all) found no beans (OnBeanCondition)

   WebSocketAutoConfiguration
      - required @ConditionalOnClass classes not found: org.springframework.web.socket.WebSocketHandler (OnClassCondition)



java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:53)
    at java.lang.Thread.run(Thread.java:744)
Caused by: org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embdedded Tomcat
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:138)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:476)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:552)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:293)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:749)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:738)
    at hello.Application.main(Application.java:12)
    ... 6 more
Caused by: org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embdedded Tomcat
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:85)
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.<init>(TomcatEmbeddedServletContainer.java:53)
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getTomcatEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:259)
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:140)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:158)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:135)
    ... 13 more
Caused by: java.lang.IllegalStateException: Tomcat connector in failed state
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:81)
    ... 18 more

Creo que esto se debe a que se usa mi puerto. Mi puerto 8080 se usa, así que pruebo el puerto 8181 No tengo ninguna aplicación en el puerto 8181

en el tomcat server.xml configuré el puerto en 8181 pero el problema persiste

Encuentro esta publicación:

¿Puerto alternativo para Tomcat (no 8080) al comenzar con Maven?

Pero tengo el mismo problema después de iniciar mvn -Dmaven.tomcat.port = 8181 tomcat: run-war

Realmente no entiendo cómo maven está vinculado al servidor tomcat Este es mi pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.springframework</groupId>
    <artifactId>gs-serving-web-content</artifactId>
    <version>0.1.0</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>0.5.0.M6</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf-spring3</artifactId>
        </dependency>
    </dependencies>

    <properties>
        <start-class>hello.Application</start-class>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>spring-milestone</id>
            <url>http://repo.spring.io/libs-milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>spring-milestone</id>
            <url>http://repo.spring.io/libs-milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

</project>

Gracias por tu ayuda

Ajouve
fuente
Primero asegúrese de que estos puertos estén 'realmente' disponibles para empezar. Ahora supongo que está utilizando algún sistema * Unix (supongo que por el delimitador de ruta), abra su terminal y ejecute netstat -tuplenpara obtener una lista completa de los puertos usados ​​con sus respectivos ID de proceso. Verifique desde allí si los puertos están libres de uso antes de iniciar tomcat
Saif Asif
Sí, mi puerto 8181 es gratuito
Ajouve
1
compruebe si el puerto predeterminado (8080) se está ejecutando o no. En Windows use> netstat -a -o -n y luego busque su puerto no si se está ejecutando o no ... si está ejecutándose, observe el pid correspondiente. taskkill / f / pid {pidno}
Sagar Rout
También una IP incorrecta en el archivo de configuración causa esta excepción.
Xaqron

Respuestas:

107

Spring Boot usa Tomcat integrado de forma predeterminada, pero lo maneja de manera diferente sin usar tomcat-maven-plugin. Para cambiar el --server.portparámetro de uso del puerto , por ejemplo:

java -jar target/gs-serving-web-content-0.1.0.jar --server.port=8181

Actualizar . Alternativamente poner server.port=8181en application.properties(o application.yml).

Marcin Zajączkowski
fuente
2
¿Es posible configurarlo en configuraciones? Por ejemplo, ¿usar una anotación?
Daniil Shevelev
64
Poner server.port=8181en su archivo application.properties también debería funcionar.
Marcin Zajączkowski
No se olvide de limpieza y construcción ... que también ayuda
cheenbabes
4
Una mejor opción para el archivo application.properties es incluir un valor predeterminado con la capacidad de anulación server.port = $ {port: 8181}
Shawn Vader
1
¡¡Muchas gracias hombre!! He buscado esa solución todo el día y después de agregar --server.port = 8181 se resolvió. gracias
gsiradze
46

Ejecute el siguiente comando para buscar el proceso que está utilizando el puerto

lsof -i :<portNumber> | grep LISTEN

en tu caso este será ->

lsof -i :8080 | grep LISTEN
java    78960 xyxss  119u  IPv6 0x6c20d372bc88c27d      0t0  TCP *:8092 (LISTEN)

El 78960 es la identificación del proceso, use el siguiente comando para matar el proceso

kill -9 78960

Vuelve a iniciar la aplicación.

prakash krishnan
fuente
1
Tuve que usar este comando para que funcione en mi mac: sudo lsof -n -P | grep ESCUCHAR. Mac le pedirá que escriba su contraseña mientras usa sudo.
Simon
Gracias por responder aquí. Solo esta solución funciona con IntelliJ
AMIC MING
30

Configure otro número de puerto (por ejemplo: 8181) en /src/main/resources/application.properties

server.port = 8181

Vysakhan Kasthuri
fuente
@Junchen Lui Eso es porque es solo una solución. Si haces esto todo el tiempo, tendrás muchos gatos machos sin usar corriendo. Mejor arregle el error en primer lugar.
Stimpson Cat
dam, esto realmente funciona sin configurar ningún xml o setup projecto
diego matos - keke
12

Debe detener el servidor antes de volver a iniciarlo. Busque el icono del cuadro rojo o la vista del servidor.

Pomagranito
fuente
sí, ese fue un problema en el eclipse. A continuación se explica cómo detener Tomcat en NetBeans: stackoverflow.com/questions/543439/…
Tomasz Mularczyk
4

Usando IntelliJ, recibí este error cuando intenté ejecutar una aplicación Spring mientras ya había una aplicación en ejecución. Tuve que detener el primero. Después de eso, ejecutar la segunda aplicación no arrojó ningún error.

vovahost
fuente
4

imagen de Spring Tool Suite y botón para detener la aplicación

En mi caso, mirar en la ventana de servidores solo mostró un servidor Tomcat que nunca había usado para este proyecto. Mi proyecto SpringBoot usó un servidor Tomcat integrado y no se detuvo cuando terminó mi aplicación. Este botón, que indico con una flecha roja, detendrá la aplicación y el servidor Tomcat, por lo que la próxima vez que ejecute la aplicación no obtendré el error de que ya se está ejecutando una Instancia de Tomcat en el puerto 8080.

mensajes de error reales:

Verifique la configuración del conector, identifique y detenga cualquier proceso que esté escuchando en el puerto 8080, o configure esta aplicación para escuchar en otro puerto.

Causado por: java.net.BindException: Dirección ya en uso Causado por: org.apache.catalina.LifecycleException: service.getName (): "Tomcat"; Error al iniciar el controlador de protocolo

Ahora buscaré una forma de cerrar todos los servicios al completar mi aplicación SpringBoot Consuming Rest en este tutorial https://spring.io/guides/gs/consuming-rest/

bota de primavera

JesseBoyd
fuente
3

Primero, verifique quién usa el puerto 8080.

si el puerto 8080 está en uso, cambie el puerto de escucha a 8181.

si usa IDEA, modifique la configuración de inicio, Ejecutar-> Editar configuración ingrese la descripción de la imagen aquí

si usa mvn spring-boot, use el comando:

mvn spring-boot:run -Dserver.port=8181

si usa java -jar, use el comando:

java -jar xxxx.jar --server.port=8181
mendigar duro
fuente
2

Esto solo funcionó para mí estableciendo propiedades adicionales y usando números de puerto arbitrarios disponibles, como este:

  • YML

/src/main/resources/application.yml

server:
  port: 18181
management:
  port: 9191
tomcat:
  jvmroute: 5478
  ajp:
    port: 4512
    redirectPort: 1236
  • Propiedades

/src/main/resources/application.properties

server.port=18181
management.port=9191
tomcat.jvmroute=5478
tomcat.ajp.port=4512
tomcat.ajp.redirectPort=1236     
emecas
fuente
1
Esto funcionó para mí. En Spring boot 2.0.3.RELEASE, la management.portclave se reemplaza por management.server.port.
Biniam
tomcat.jvmroute = 5478 me ayudó a ejecutar dos instancias de la aplicación junto con server.port = 18181
Ritesh K
2

Sugeriría eliminar el número de puerto. Funcionó para mi

netstat -ano | findstr :yourPortNumber taskkill /PID typeyourPIDhere /F
Aditya Raj
fuente
2

En su archivo application.properties -

/ src / main / resources / application.properties

Cambie el número de puerto a algo como esto:

server.port = 8181

O, alternativamente, puede proporcionar un número de puerto alternativo mientras ejecuta su archivo jar: java -jar resource-server / build / libs / resource-server.jar --server.port = 8888

vikash singh
fuente
2

puede configurar otro número de puerto en su IDE /src/main/resources/application.properties

server.port = 8081

de lo contrario, haga clic con el botón derecho en la pestaña de la consola IDE y seleccione Terminar / Disconnect All

malith vitha
fuente
1

En mi caso, Oracle TNS Service estaba usando el puerto 8080, encontré que usaba el comando "netstat - anob" como administrador. Simplemente usó Shutdown Database desde el menú de inicio de Windows para detener ese servicio y pudo iniciar la aplicación SpringBoot sin ningún problema.

Además, si no puede averiguar qué aplicación está usando el puerto 8080 y solo desea ejecutar la aplicación SprintBoot, puede hacer clic en Ejecutar como ... y en los argumentos de la VM ingrese: -Dserver.port = 0 (esto seleccionará cualquier puerto disponible) o puede ser específico como: -Dserver.port = 8081

Espero eso ayude.

MAB
fuente
Intenté cambiar mi -Dserver.port = 0 y probé con dos aplicaciones, lanzadas al mismo tiempo. Ahora ambos abren en un puerto diferente
hnahak
1

Puede resolver esto siguiendo estos pasos:

  1. Haga clic derecho en el proyecto que está ejecutando.
  2. Haga clic en Ejecutar como y Ejecutar configuraciones en la opción.
  3. Se abrirá una nueva configuración de ejecución. En la pestaña Spring Boot, consulte Propiedades de anulación .
  4. Agregue el par propiedad-valor como server.port=8181, o cualquier otro puerto de su elección. Esto anulará el puerto predeterminado que es 8080
Ripudaman Singh
fuente
1

Es una pregunta realmente vieja. Quizás esto sea útil. Centrándonos en su problema de título, así es como inicio mis aplicaciones y luego puedo cerrarlas fácilmente. Cambie el número de puerto para cada aplicación que desee iniciar como se mencionó anteriormente.

application.properties

#using curl -X POST localhost:8080/actuator/shutdown to avoid:
#netstat -ano | find "8080"
#taskkill /F /PID xxxx (xxxx stands for PID)
management.endpoints.web.exposure.include=*
management.endpoint.shutdown.enabled=true
endpoints.shutdown.enabled=true

agregue esta dependencia:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

Ahora puedes derribar fácilmente

curl -X POST localhost:8080/actuator/shutdown
Jim C
fuente
1

Haga clic derecho en la consola y haga clic en la opción Terminar / Desconectar todo.

O

Haga clic en el icono 'Mostrar consola seleccionada' en la esquina superior derecha de la ventana de la consola y elija y finalice la consola que mantiene el puerto quieto.

Nagaraj Pattar
fuente
1

Este error ocurre básicamente cuando el puerto específico no está libre. Entonces, hay dos soluciones, puede liberar ese puerto eliminando o cerrando el servicio que lo está utilizando o puede ejecutar su aplicación (tomcat) en un puerto diferente.

Solución 1: libere el puerto

En una máquina Linux, puede encontrar el ID de proceso del consumidor del puerto y luego eliminarlo. Utilice el siguiente comando (se supone que el puerto predeterminado es 8080)

netstat -pnltu | grep -i "8080"

La salida del comando mencionado anteriormente sería algo como:

tcp6   0  0 :::8080    :::*      LISTEN      20674/java 

Entonces puede matar fácilmente el proceso con su processid:

kill 20674

En una máquina con Windows para encontrar un uso de id de proceso netstat -ano -p tcp |find "8080". Para matar el proceso use taskkill /F /PID 1234(en lugar de 1234 ingrese el processid fundado).

Solución 2: cambie el puerto predeterminado

En el proceso de desarrollo, los desarrolladores usan el port 8080que puede cambiar fácilmente. Debe especificar el número de puerto deseado en el application.propertiesarchivo de su proyecto ( /src/main/resources/application.properties) utilizando la siguiente especificación:

server.port=8081

También puede establecer un número de puerto alternativo mientras ejecuta el .jararchivo

- java -jar spring-boot-application.jar --server.port=8081

Tenga en cuenta que a veces (no necesariamente) tiene que cambiar otros puertos también como:

management.port=
tomcat.jvmroute=
tomcat.ajp.port=
tomcat.ajp.redirectPort=
etc...
Elyas Hadizadeh
fuente
1

Esto se debe a que el puerto ya se está ejecutando en segundo plano, por lo que puede reiniciar el eclipse e intentarlo de nuevo. O abra el archivo application.properties y cambie el valor de 'server.port' a algún otro valor como por ejemplo: - 8000/8181

Ribin
fuente
0

Cierre la aplicación, luego reiníciela después de cambiar a un nuevo puerto:

${port:8181}

Puede utilizar cualquier puerto nuevo no utilizado. Aquí, usé el puerto 8181.

patan khan
fuente
@Bruce ¿Cómo no intenta esto dar una respuesta? Veo un intento claro: cerrar la aplicación; cambiar el puerto; y reiniciarlo. Puede que esté completamente equivocado, pero eso no significa que no sea un intento de responder.
Deshacer
0

Resolví este problema deteniendo la aplicación (cuadrado rojo en Eclipse) antes de ejecutarla nuevamente. Si no lo detiene, la aplicación permanece en modo de ejecución, por lo que el puerto aún se usa.

Omar B.
fuente
0

Tiene otro proceso que está escuchando en el puerto 8080, que es el puerto predeterminado que utiliza el soporte web de Spring Boot. Debe detener ese proceso o configurar su aplicación para escuchar en otro puerto.

Puede cambiar la configuración del puerto agregando server.port = 4040 (por ejemplo) a src / main / resources / application.properties

Krishna
fuente
0

Básicamente, el servidor predeterminado generalmente se ejecuta en segundo plano en el puerto 8080. Abra services.msc y detenga el servidor Tomcat e intente ejecutar la aplicación Spring Boot nuevamente.

varuag
fuente
0

En Eclipse, si Spring Tool Suite está instalado, puede ir a Boot Dashboard y expandir local en el explorador y hacer clic con el botón derecho en la aplicación que se está ejecutando en el puerto 8080 y detenerla antes de volver a ejecutar su aplicación.

karthi
fuente
0

Intento cambiar el número de puerto en el siguiente archivo: /src/main/resources/application-prod.yml

Y dentro de este archivo hice este cambio:

servidor: puerto: 8100 (o lo que quieras)

Espero que esto funcione bien para ti

Jonan87
fuente
0

Estaba buscando una solución para Windows pero no encontré ninguna. Finalmente, descubrí que hay una aplicación java colgando usando el puerto. Tal vez sea la instancia anterior de la aplicación de primavera y terminó el proceso.

Solía tcpview de Microsoft . Muestra servicios / aplicaciones usando qué puerto en su computadora.

ingrese la descripción de la imagen aquí

Puede finalizar el proceso. ¡Y hecho!

Shivam Agarwal
fuente
-1

Estaba teniendo el mismo problema, es decir , el inicio del controlador de protocolo falló . Porque el puerto ya está en uso . Descubrí si el puerto estaba en uso o no. Era. Así que maté el proceso que se estaba ejecutando en ese puerto y reinicié mi aplicación de arranque de primavera. Y funcionó. :)

spiderohara
fuente