Lancement de l'adresse de l'application Spring déjà utilisée


96

J'ai cette erreur lors du lancement de mon application de printemps:

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

Je pense que c'est parce que mon port est utilisé. Mon port 8080 est utilisé donc j'essaye le port 8181 Je n'ai pas d'application sur le port 8181

dans le serveur tomcat.xml, j'ai défini le port sur 8181 mais le problème persiste

Je trouve ce post:

Autre port pour Tomcat (pas 8080) lors du démarrage avec Maven?

Mais j'ai le même problème après le lancement de mvn -Dmaven.tomcat.port = 8181 tomcat: run-war

Je ne comprends pas vraiment comment maven est lié au serveur tomcat Ceci est mon 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>

Merci de votre aide


Assurez-vous d'abord que ces ports sont «vraiment» disponibles pour commencer. Maintenant, je suppose que vous utilisez un système * Unix (je suppose d'après le délimiteur de chemin), ouvrez votre terminal et exécutez netstat -tuplenpour obtenir une liste complète des ports utilisés avec leurs processID respectifs. Vérifiez à partir de là si les ports ne sont pas utilisés avant de démarrer tomcat
Saif Asif

Oui mon port 8181 est gratuit
Ajouve

1
vérifiez si le port par défaut (8080) fonctionne ou non. Sous Windows, utilisez> netstat -a -o -n puis recherchez votre port no, qu'il soit en cours d'exécution ou non .... s'il est en cours d'exécution, notez le pid correspondant. taskkill / f / pid {pidno}
Sagar Rout

Une adresse IP erronée dans le fichier de configuration provoque également cette exception.
Xaqron

Réponses:


107

Spring Boot utilise Tomcat intégré par défaut, mais il le gère différemment sans utiliser tomcat-maven-plugin. Pour modifier le --server.portparamètre d' utilisation du port par exemple:

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

Mettre à jour . Vous pouvez également mettre server.port=8181dans application.properties(ou application.yml).


2
Est-il possible de le définir dans des configurations? Par exemple en utilisant l'annotation?
Daniil Shevelev le

64
L'installation server.port=8181dans votre fichier application.properties devrait également fonctionner.
Marcin Zajączkowski

N'oubliez pas de nettoyer et de construire ... cela aide aussi
cheenbabes

4
Une meilleure option pour le fichier application.properties est d'inclure une valeur par défaut avec la capacité de remplacement server.port = $ {port: 8181}
Shawn Vader

1
Merci beaucoup mec !! J'ai cherché cette solution toute la journée et après avoir ajouté --server.port = 8181, elle a été résolue. merci
gsiradze

46

Exécutez la commande suivante pour rechercher le processus qui utilise le port

lsof -i :<portNumber> | grep LISTEN

dans votre cas, ce sera ->

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

Le 78960 est l'identifiant du processus, utilisez la commande suivante pour tuer le processus

kill -9 78960

Lancez à nouveau l'application.


1
J'ai dû utiliser cette commande pour le faire fonctionner sur mon mac: sudo lsof -n -P | grep LISTEN. Mac vous invitera à saisir votre mot de passe lorsque vous utilisez sudo.
Simon

Merci pour la réponse ici. Seule cette solution fonctionne avec IntelliJ
AMIC MING

30

Configurez un autre numéro de port (par exemple: 8181) dans /src/main/resources/application.properties

server.port = 8181


@Junchen Lui C'est parce que ce n'est qu'une solution de contournement. Si vous faites cela tout le temps, vous aurez beaucoup de matous inutilisés en cours d'exécution. Mieux vaut corriger l'erreur en premier lieu.
Stimpson Cat

dam, cela fonctionne vraiment sans configurer de projet xml ou
setupo


4

En utilisant IntelliJ, j'ai eu cette erreur lorsque j'ai essayé d'exécuter une application Spring alors qu'une application était déjà en cours d'exécution. J'ai dû arrêter le premier. Après cela, l'exécution de la deuxième application n'a renvoyé aucune erreur.


4

image de Spring Tool Suite et bouton d'arrêt de l'application

Dans mon cas, regarder dans la fenêtre des serveurs n'a montré qu'un serveur tomcat que je n'avais jamais utilisé pour ce projet. Mon projet SpringBoot utilisait un serveur tomcat intégré et il ne s'est pas arrêté lorsque mon application s'est terminée. Ce bouton que j'indique avec une flèche rouge arrêtera l'application et le serveur Tomcat donc la prochaine fois que j'exécuterai l'application, je n'obtiendrai pas l'erreur qu'une instance de Tomcat est déjà en cours d'exécution sur le port 8080.

messages d'erreur réels:

Vérifiez la configuration du connecteur, identifiez et arrêtez tout processus qui écoute sur le port 8080 ou configurez cette application pour écouter sur un autre port.

Causé par: java.net.BindException: Adresse déjà utilisée Causé par: org.apache.catalina.LifecycleException: service.getName (): "Tomcat"; Le démarrage du gestionnaire de protocole a échoué

Je vais maintenant chercher un moyen d'arrêter tous les services à la fin de mon application SpringBoot Consuming Rest dans ce tutoriel https://spring.io/guides/gs/consuming-rest/

botte à ressort


3

Vérifiez d'abord qui utilise le port 8080.

si le port 8080 est utilisé, remplacez le port d'écoute par 8181.

si vous utilisez IDEA, modifiez la configuration de démarrage, Exécuter-> Modifier la configuration entrez la description de l'image ici

si vous utilisez mvn spring-boot, utilisez la commande:

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

si vous utilisez java -jar, utilisez la commande:

java -jar xxxx.jar --server.port=8181

2

Cela n'a fonctionné pour moi qu'en définissant des propriétés supplémentaires et en utilisant les numéros de port arbitraires disponibles, comme ceci:

  • YML

/src/main/resources/application.yml

server:
  port: 18181
management:
  port: 9191
tomcat:
  jvmroute: 5478
  ajp:
    port: 4512
    redirectPort: 1236
  • Propriétés

/src/main/resources/application.properties

server.port=18181
management.port=9191
tomcat.jvmroute=5478
tomcat.ajp.port=4512
tomcat.ajp.redirectPort=1236     

1
Cela a fonctionné pour moi. Dans Spring boot 2.0.3.RELEASE, la management.portclé est remplacée par management.server.port.
biniam

tomcat.jvmroute = 5478 m'a aidé à exécuter deux instances de l'application avec server.port = 18181
Ritesh K le

2

Je suggérerais de tuer le numéro de port. Ça a marché pour moi

netstat -ano | findstr :yourPortNumber taskkill /PID typeyourPIDhere /F

2

Dans votre fichier application.properties -

/ src / main / resources / application.properties

Changez le numéro de port en quelque chose comme ça -

server.port = 8181

Vous pouvez également fournir un autre numéro de port lors de l'exécution de votre fichier jar - java -jar resource-server / build / libs / resource-server.jar --server.port = 8888


2

vous pouvez configurer un autre numéro de port dans votre IDE /src/main/resources/application.properties

server.port = 8081

sinon faites un clic droit sur l' onglet de la console IDE et sélectionnez Terminer / Déconnecter tout


1

Dans mon cas, Oracle TNS Service utilisait le port 8080, a constaté que l 'utilisation de la commande "netstat - anob" en tant qu'administrateur. Simplement utilisé Shutdown Database dans le menu Démarrer de Windows pour arrêter ce service et a pu démarrer l'application SpringBoot sans aucun problème.

De plus, si vous ne pouvez pas savoir quelle application utilise le port 8080 et que vous souhaitez simplement exécuter l'application SprintBoot, vous pouvez cliquer sur Exécuter en tant que ... et dans les arguments de la VM, entrez: -Dserver.port = 0 (cela choisira n'importe quel aléatoire port disponible) ou vous pouvez être spécifique comme: -Dserver.port = 8081

J'espère que ça aide.


J'ai essayé de changer mon -Dserver.port = 0 et testé avec deux applications, lancées en même temps. Maintenant, les deux sont ouverts dans un port différent
hnahak

1

Vous pouvez résoudre ce problème en suivant ces étapes:

  1. Faites un clic droit sur le projet que vous exécutez.
  2. Cliquez sur Exécuter en tant que et exécuter les configurations dans l'option.
  3. Une nouvelle configuration d'exécution s'ouvrira. Sous l' onglet Spring Boot, voir les propriétés de remplacement .
  4. Ajoutez la paire propriété-valeur en tant que server.port=8181ou tout autre port de votre choix. Cela remplacera le port par défaut qui est 8080

1

C'est vraiment une vieille question. Peut-être que c'est utile. En me concentrant sur votre problème de titre, c'est ainsi que je lance mes applications et que je peux facilement les arrêter. Modifiez le numéro de port de chaque application que vous souhaitez démarrer comme indiqué ci-dessus.

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

ajoutez cette dépendance:

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

Maintenant, vous pouvez abattre facilement en

curl -X POST localhost:8080/actuator/shutdown

1

Faites un clic droit dans la console et cliquez sur l'option Terminer / Déconnecter tout.

OU

Cliquez sur l'icône «Afficher la console sélectionnée» dans le coin supérieur droit de la fenêtre de la console et choisissez et terminez la console qui maintient le port immobile.


1

Cette erreur se produit essentiellement lorsque le port spécifique n'est pas libre. Il existe donc deux solutions, vous pouvez libérer ce port en supprimant ou en fermant le service qui l'utilise ou vous pouvez exécuter votre application (tomcat) sur un autre port.

Solution 1: libérer le port

Sur une machine Linux, vous pouvez trouver l'identifiant de processus du consommateur du port, puis le tuer. Utilisez la commande suivante (on suppose que le port par défaut est 8080)

netstat -pnltu | grep -i "8080"

La sortie de la commande mentionnée ci-dessus serait quelque chose comme:

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

Ensuite, vous pouvez facilement tuer le processus avec son processid:

kill 20674

Sur une machine Windows pour trouver une utilisation processid netstat -ano -p tcp |find "8080". Pour tuer le processus, utilisez taskkill /F /PID 1234(au lieu de 1234, entrez l'identifiant du processus).

Solution 2: modifier le port par défaut

Dans le processus de développement, les développeurs utilisent le port 8080que vous pouvez modifier facilement. Vous devez spécifier le numéro de port souhaité dans le application.propertiesfichier de votre projet ( /src/main/resources/application.properties) en utilisant la spécification suivante:

server.port=8081

Vous pouvez également définir un autre numéro de port lors de l'exécution du .jarfichier

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

Veuillez noter que parfois (pas nécessairement) vous devez également changer d'autres ports comme:

management.port=
tomcat.jvmroute=
tomcat.ajp.port=
tomcat.ajp.redirectPort=
etc...

1

En effet, le port fonctionne déjà en arrière-plan, vous pouvez donc redémarrer l'éclipse et réessayer. OU ouvrez le fichier application.properties et remplacez la valeur de 'server.port' par une autre valeur comme par exemple: - 8000/8181


0

Fermez l'application, puis redémarrez-la après avoir changé de port:

${port:8181}

Vous pouvez utiliser n'importe quel nouveau port inutilisé. Ici, j'ai utilisé le port 8181.


@Bruce Comment cela ne tente-t-il pas de fournir une réponse? Je vois une tentative claire: fermer l'application; changer le port; et le redémarrer. Cela peut être complètement faux, mais cela ne veut pas dire que ce n'est pas une tentative de réponse.
Annuler

0

J'ai résolu ce problème, en arrêtant l'application (carré rouge dans Eclipse) avant de la relancer. Si vous ne l'arrêtez pas, l'application reste en mode exécution, donc le port est toujours utilisé.


0

Vous avez un autre processus qui écoute sur le port 8080, qui est le port par défaut utilisé par le support Web de Spring Boot. Vous devez soit arrêter ce processus, soit configurer votre application pour écouter sur un autre port.

Vous pouvez modifier la configuration du port en ajoutant server.port = 4040 (par exemple) à src / main / resources / application.properties


0

Fondamentalement, le serveur par défaut s'exécute généralement en arrière-plan sur le port 8080. Ouvrez services.msc et arrêtez le serveur tomcat et essayez à nouveau d'exécuter l'application Spring Boot.


0

Dans Eclipse, si Spring Tool Suite est installé, vous pouvez aller dans Boot Dashboard et développer local dans l'explorateur et faire un clic droit sur l'application qui s'exécute sur le port 8080 et l'arrêter avant de réexécuter votre application.


0

J'essaye de changer le numéro de port dans le fichier suivant - /src/main/resources/application-prod.yml

Et dans ce fichier, j'ai effectué ce changement:

serveur: port: 8100 (ou ce que vous voulez)

J'espère que cela fonctionnera bien pour vous


0

Je cherchais une solution pour Windows mais je n'en ai trouvé aucune. Enfin, j'ai compris qu'il existe une application java suspendue utilisant le port. C'est peut-être la première instance de l'application de printemps et a mis fin au processus.

J'ai utilisé tcpview de Microsoft . Il montre les services / applications utilisant quel port sur votre ordinateur.

entrez la description de l'image ici

Vous pouvez mettre fin au processus. Et.. Voila!


-1

J'avais le même problème, c'est-à-dire que le démarrage du gestionnaire de protocole a échoué . Parce que le port est déjà utilisé . J'ai trouvé si le port était utilisé ou non. C'était. J'ai donc tué le processus en cours d'exécution sur ce port et redémarré mon application Spring Boot. Et ça a marché. :)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.