Uruchamianie aplikacji Spring Adres już w użyciu

98

Mam ten błąd podczas uruchamiania mojej aplikacji wiosennej:

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

Myślę, że dzieje się tak, ponieważ mój port jest używany. Mój port 8080 jest używany, więc próbuję port 8181. Nie mam aplikacji na porcie 8181

w tomcat server.xml ustawiłem port na 8181, ale problem nadal występuje

Znajduję ten post:

Alternatywny port dla Tomcat (nie 8080), gdy zaczynasz od Maven?

Ale mam ten sam problem po uruchomieniu mvn -Dmaven.tomcat.port = 8181 tomcat: run-war

Naprawdę nie rozumiem, jak maven jest połączony z serwerem tomcat. To jest mój 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>

Dzięki za pomoc

Ajouve
źródło
Najpierw upewnij się, że te porty są „naprawdę” dostępne. Teraz myślę, że używasz jakiegoś * systemu Unix (zgaduję z ogranicznika ścieżki), otwórz terminal i uruchom, netstat -tuplenaby uzyskać pełną listę używanych portów z ich odpowiednimi identyfikatorami procesów. Sprawdź stamtąd, czy porty są wolne przed uruchomieniem tomcat
Saif Asif
Tak, mój port 8181 jest wolny
Ajouve,
1
sprawdź, czy port domyślny (8080) jest uruchomiony, czy nie. W systemie Windows użyj> netstat -a -o -n, a następnie wyszukaj numer portu, niezależnie od tego, czy jest uruchomiony, czy nie .... jeśli jest uruchomiony, zanotuj odpowiadający mu pid. taskkill / f / pid {pidno}
Sagar Rout
Również zły adres IP w pliku konfiguracyjnym powoduje ten wyjątek.
Xaqron

Odpowiedzi:

109

Spring Boot domyślnie używa wbudowanego Tomcata, ale obsługuje go inaczej bez użycia tomcat-maven-plugin. Aby zmienić --server.portparametr użycia portu , na przykład:

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

Aktualizuj . Alternatywnie włóż server.port=8181do application.properties(lub application.yml).

Marcin Zajączkowski
źródło
2
Czy można to ustawić w konfiguracjach? Na przykład używając adnotacji?
Daniil Shevelev
66
Umieszczenie server.port=8181w pliku application.properties również powinno działać.
Marcin Zajączkowski
Nie zapomnij o sprzątaniu i budowaniu ... to też pomaga
cheenbabes
4
Lepszą opcją dla pliku application.properties jest dodanie wartości domyślnej z możliwością nadpisywania server.port = $ {port: 8181}
Shawn Vader
1
Dzięki wielkie!! Szukałem tego rozwiązania przez cały dzień i po dodaniu --server.port = 8181 zostało rozwiązane. dzięki
gsiradze
49

Uruchom następującą komendę, aby wyszukać proces korzystający z portu

lsof -i :<portNumber> | grep LISTEN

w twoim przypadku będzie to ->

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

78960 to identyfikator procesu, użyj następującego polecenia, aby zabić proces

kill -9 78960

Uruchom ponownie aplikację.

prakash krishnan
źródło
1
Musiałem użyć tego polecenia, aby działało na moim komputerze Mac: sudo lsof -n -P | grep SŁUCHAJ. Mac poprosi Cię o wpisanie hasła podczas korzystania z sudo.
Simon
Dzięki za odpowiedź tutaj. Tylko to rozwiązanie działa z IntelliJ
AMIC MING
30

Skonfiguruj inny numer portu (np .: 8181) w /src/main/resources/application.properties

server.port = 8181

Vysakhan Kasthuri
źródło
@Junchen Lui To dlatego, że jest to tylko obejście. Jeśli będziesz to robił cały czas, będziesz biegał wiele nieużywanych kocurów. Lepiej napraw błąd w pierwszej kolejności.
Stimpson Cat
dam, to naprawdę działa bez konfigurowania jakiegokolwiek xml lub setup projecto
diego matos - keke Kwietnia
12

Musisz zatrzymać serwer przed ponownym uruchomieniem. Poszukaj ikony czerwonego pola lub widoku serwera.

Pomagranit
źródło
tak, to był problem podczas zaćmienia. Oto jak zatrzymać Tomcata w NetBeans: stackoverflow.com/questions/543439/…
Tomasz Mularczyk
4

Korzystając z IntelliJ, otrzymałem ten błąd, gdy próbowałem uruchomić aplikację Spring, gdy była już uruchomiona jedna aplikacja. Pierwszego musiałem przerwać. Po tym uruchomienie drugiej aplikacji nie zwróciło żadnych błędów.

vovaost
źródło
4

obraz Spring Tool Suite i przycisk zatrzymania aplikacji

W moim przypadku patrząc w okno serwerów pokazałem tylko serwer tomcat, którego nigdy nie użyłem w tym projekcie. Mój projekt SpringBoot wykorzystywał wbudowany serwer Tomcat i nie zatrzymywał się po zakończeniu pracy mojej aplikacji. Ten przycisk, który wskazuję czerwoną strzałką, zatrzyma aplikację i serwer Tomcat, więc następnym razem, gdy uruchomię aplikację, nie otrzymam błędu, że Instancja Tomcat już działa na porcie 8080.

aktualne komunikaty o błędach:

Sprawdź konfigurację łącznika, zidentyfikuj i zatrzymaj każdy proces nasłuchujący na porcie 8080 lub skonfiguruj tę aplikację do nasłuchiwania na innym porcie.

Przyczyna: java.net.BindException: adres już używany. Przyczyna: org.apache.catalina.LifecycleException: service.getName (): "Tomcat"; Uruchomienie obsługi protokołu nie powiodło się

Będę teraz szukał sposobu na zamknięcie wszystkich usług po zakończeniu mojej aplikacji SpringBoot Consuming Rest w tym samouczku https://spring.io/guides/gs/consuming-rest/

buty sprężynowe

JesseBoyd
źródło
3

najpierw sprawdź, kto używa portu 8080.

jeśli port 8080 jest używany, zmień port nasłuchiwania na 8181.

jeśli używasz IDEA, zmień konfigurację początkową, Uruchom-> Edytuj konfigurację wprowadź tutaj opis obrazu

jeśli używasz spring-boot mvn, użyj polecenia:

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

jeśli używasz java -jar, użyj polecenia:

java -jar xxxx.jar --server.port=8181
błaganie hard
źródło
2

Działało to tylko dla mnie, ustawiając dodatkowe właściwości i używając dostępnych dowolnych numerów portów, na przykład:

  • YML

/src/main/resources/application.yml

server:
  port: 18181
management:
  port: 9191
tomcat:
  jvmroute: 5478
  ajp:
    port: 4512
    redirectPort: 1236
  • Nieruchomości

/src/main/resources/application.properties

server.port=18181
management.port=9191
tomcat.jvmroute=5478
tomcat.ajp.port=4512
tomcat.ajp.redirectPort=1236     
emecas
źródło
1
To zadziałało dla mnie. W Spring boot 2.0.3.RELEASE management.portklucz jest zastępowany management.server.port.
biniam
tomcat.jvmroute = 5478 pomógł mi uruchomić dwie instancje aplikacji wraz z server.port = 18181
Ritesh K
2

Sugerowałbym zabicie numeru portu. U mnie to zadziałało

netstat -ano | findstr :yourPortNumber taskkill /PID typeyourPIDhere /F
Aditya Raj
źródło
2

W pliku application.properties -

/ src / main / resources / application.properties

Zmień numer portu na podobny do tego -

server.port = 8181

Alternatywnie możesz podać alternatywny numer portu podczas wykonywania pliku jar - java -jar resource-server / build / libs / resource-server.jar --server.port = 8888

vikash singh
źródło
2

możesz skonfigurować inny numer portu w swoim IDE /src/main/resources/application.properties

server.port = 8081

w przeciwnym razie kliknij prawym przyciskiem myszy kartę konsoli IDE i wybierz Zakończ / Rozłącz wszystko

malith vitha
źródło
2

Ten błąd zasadniczo występuje, gdy określony port nie jest wolny. Są więc dwa rozwiązania, możesz zwolnić ten port, zabijając lub zamykając usługę, która go używa, lub możesz uruchomić aplikację (tomcat) na innym porcie.

Rozwiązanie 1: Zwolnij port

Na komputerze z systemem Linux możesz znaleźć identyfikator procesu konsumenta portu, a następnie go zabić. Użyj następującego polecenia (przyjmuje się, że domyślny port to 8080)

netstat -pnltu | grep -i "8080"

Wynik powyższego polecenia wyglądałby tak:

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

Następnie możesz łatwo zabić proces za pomocą jego identyfikatora procesu:

kill 20674

Na komputerze z systemem Windows, aby znaleźć procesid użycia netstat -ano -p tcp |find "8080". Aby zabić proces użyj taskkill /F /PID 1234(zamiast 1234 wpisz założony identyfikator procesu).

Rozwiązanie 2: Zmień domyślny port

W procesie rozwoju programiści używają tego port 8080, że można to łatwo zmienić. Musisz określić żądany numer portu w application.propertiespliku projektu ( /src/main/resources/application.properties), używając następującej specyfikacji:

server.port=8081

Możesz również ustawić alternatywny numer portu podczas wykonywania .jarpliku

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

Zauważ, że czasami (niekoniecznie) musisz zmienić również inne porty, na przykład:

management.port=
tomcat.jvmroute=
tomcat.ajp.port=
tomcat.ajp.redirectPort=
etc...
Elyas Hadizadeh
źródło
1

W moim przypadku usługa Oracle TNS korzystała z portu 8080, stwierdziła, że ​​używając polecenia „netstat - anob” jako administrator. Po prostu skorzystałem z Shutdown Database z menu Start systemu Windows, aby zatrzymać tę usługę i mogłem uruchomić aplikację SpringBoot bez żadnego problemu.

Jeśli nie możesz dowiedzieć się, która aplikacja korzysta z portu 8080 i po prostu chcesz uruchomić aplikację SprintBoot, możesz kliknąć Uruchom jako ... iw argumentach VM wprowadź: -Dserver.port = 0 (wybierze to dowolną losową dostępny port) lub możesz podać konkretny przykład: -Dserver.port = 8081

Mam nadzieję, że to pomoże.

MAB
źródło
Próbowałem zmienić mój -Dserver.port = 0 i testowałem z dwiema aplikacjami uruchomionymi w tym samym czasie. Teraz oba otwarte w innym porcie
hnahak
1

Możesz rozwiązać ten problem, wykonując następujące kroki:

  1. Kliknij prawym przyciskiem myszy projekt, który uruchamiasz.
  2. Kliknij Uruchom jako i Uruchom konfiguracje z opcji.
  3. Otworzy się nowa konfiguracja uruchamiania. W zakładce Spring Boot zobacz właściwości Zastąp .
  4. Dodaj parę właściwość-wartość jako server.port=8181lub dowolny inny wybrany port. Spowoduje to zastąpienie domyślnego portu 8080
Ripudaman Singh
źródło
1

To naprawdę stare pytanie. Może to jest przydatne. Skupiając się na problemie związanym z tytułem, jest to sposób, w jaki uruchamiam swoje aplikacje, a następnie mogę je łatwo zamknąć. Zmień numer portu dla każdej aplikacji, którą chcesz uruchomić, jak wspomniano powyżej.

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

dodaj tę zależność:

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

Teraz możesz łatwo zestrzelić

curl -X POST localhost:8080/actuator/shutdown
Jim C
źródło
1

Kliknij prawym przyciskiem myszy w konsoli i kliknij opcję Zakończ / Rozłącz wszystko.

LUB

Kliknij ikonę „Wyświetl wybraną konsolę” w prawym górnym rogu okna konsoli, a następnie wybierz i zakończ konsolę, na której port jest nieruchomy.

Nagaraj Pattar
źródło
1

Szukałem rozwiązania dla systemu Windows, ale żadnego nie znalazłem. Wreszcie odkryłem, że istnieje wisząca aplikacja Java korzystająca z tego portu. Może to wcześniejsza instancja aplikacji wiosennej i zakończyła proces.

Użyłem tcpview firmy Microsoft . Pokazuje usługi / aplikacje używające portu na twoim komputerze.

wprowadź opis obrazu tutaj

Możesz zakończyć proces. I zrobione!

Shivam Agarwal
źródło
1

Dzieje się tak, ponieważ port już działa w tle, więc możesz ponownie uruchomić zaćmienie i spróbować jeszcze raz. LUB otwórz plik application.properties i zmień wartość „server.port” na inną wartość, na przykład: - 8000/8181

Ribin
źródło
0

Zamknij aplikację, a następnie uruchom ją ponownie po zmianie na nowy port:

${port:8181}

Możesz użyć dowolnego nowego nieużywanego portu. Tutaj użyłem portu 8181.

patan khan
źródło
@Bruce Jak to nie próbuje udzielić odpowiedzi? Widzę wyraźną próbę: zamknięcie aplikacji; zmiana portu; i ponowne uruchomienie. To może być całkowicie błędne, ale to nie znaczy, że nie jest to próba odpowiedzi.
Cofnij
0

Rozwiązałem ten problem, zatrzymując aplikację (czerwony kwadrat w Eclipse) przed ponownym uruchomieniem. Jeśli tego nie zatrzymasz, aplikacja pozostanie w trybie pracy, więc port nadal będzie używany.

Omar B.
źródło
0

Masz inny proces, który nasłuchuje na porcie 8080, który jest domyślnym portem używanym przez obsługę sieci Web Spring Boot. Musisz zatrzymać ten proces lub skonfigurować aplikację do nasłuchiwania na innym porcie.

Możesz zmienić konfigurację portu, dodając server.port = 4040 (na przykład) do src / main / resources / application.properties

krishna
źródło
0

Zasadniczo domyślny serwer zwykle działa w tle na porcie 8080. Otwórz services.msc i zatrzymaj serwer tomcat i spróbuj ponownie uruchomić aplikację rozruchową.

varuag
źródło
0

W Eclipse, jeśli pakiet Spring Tool Suite jest zainstalowany, możesz przejść do Boot Dashboard i rozwinąć lokalną w eksploratorze, kliknąć prawym przyciskiem myszy aplikację, która jest uruchomiona na porcie 8080 i zatrzymać ją przed ponownym uruchomieniem aplikacji.

karthi
źródło
0

Próbuję zmienić numer portu w następującym pliku - /src/main/resources/application-prod.yml

W tym pliku dokonałem tej zmiany:

serwer: port: 8100 (lub jak chcesz)

Mam nadzieję, że to zadziała dobrze

Jonan87
źródło
-1

Otrzymałem ten sam problem, tj . Nie udało się uruchomić programu obsługi protokołu . Ponieważ port jest już używany . Dowiedziałem się, czy port był używany, czy nie. To było. Więc zabiłem proces działający na tym porcie i zrestartowałem moją aplikację rozruchową. I zadziałało. :)

Gaurav Sharma
źródło