Avvio dell'applicazione Spring Indirizzo già in uso


96

Ho questo errore durante l'avvio della mia applicazione primaverile:

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

Penso che ciò sia dovuto al fatto che viene utilizzata la mia porta. La mia porta 8080 è usata quindi provo la porta 8181 Non ho nessuna applicazione sulla porta 8181

in tomcat server.xml ho impostato la porta su 8181 ma il problema persiste

Trovo questo post:

Porta alternativa per Tomcat (non 8080) quando si inizia con Maven?

Ma ho lo stesso problema dopo aver avviato mvn -Dmaven.tomcat.port = 8181 tomcat: run-war

Non capisco davvero come Maven sia collegato al server Tomcat Questo è il mio 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>

Grazie per l'aiuto


Innanzitutto assicurati che queste porte siano "realmente" disponibili per cominciare. Ora immagino che tu stia usando un sistema * Unix (immagino dal delimitatore di percorso), apri il tuo terminale ed esegui netstat -tuplenper ottenere un elenco completo delle porte utilizzate con i rispettivi processID. Verificare da lì se le porte non sono utilizzate prima di avviare Tomcat
Saif Asif

Sì, la mia porta 8181 è gratuita
Ajouve

1
controllare se la porta predefinita (8080) è in esecuzione o meno. In Windows usa> netstat -a -o -n e poi cerca la tua porta no se è in esecuzione o meno .... se è in esecuzione, annota il pid corrispondente. taskkill / f / pid {pidno}
Sagar Rout

Anche l'IP sbagliato nel file di configurazione causa questa eccezione.
Xaqron

Risposte:


107

Spring Boot utilizza Tomcat incorporato per impostazione predefinita, ma lo gestisce in modo diverso senza utilizzare tomcat-maven-plugin. Ad --server.portesempio, per modificare il parametro di utilizzo della porta :

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

Aggiorna . In alternativa, inserire server.port=8181in application.properties(o application.yml).


2
È possibile impostarlo nelle configurazioni? Ad esempio usando l'annotazione?
Daniil Shevelev

64
Anche l' server.port=8181inserimento nel file application.properties dovrebbe funzionare.
Marcin Zajączkowski

Non dimenticare di pulire e costruire ... anche questo aiuta
cheenbabes

4
Un'opzione migliore per il file application.properties è includere un valore predefinito con l'abilità di override server.port = $ {port: 8181}
Shawn Vader

1
Grazie mille amico !! Ho cercato quella soluzione tutto il giorno e dopo aver aggiunto --server.port = 8181 è stato risolto. grazie
gsiradze

46

Eseguire il comando seguente per cercare il processo che utilizza la porta

lsof -i :<portNumber> | grep LISTEN

nel tuo caso sarà ->

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

Il 78960 è l'id del processo, usa il seguente comando per terminare il processo

kill -9 78960

Avvia nuovamente l'applicazione.


1
Ho dovuto usare questo comando per farlo funzionare sul mio Mac: sudo lsof -n -P | grep ASCOLTA. Mac ti chiederà di digitare la tua password mentre stai usando sudo.
Simon

Grazie per la risposta qui. Solo questa soluzione funziona con IntelliJ
AMIC MING

30

Configura un altro numero di porta (ad esempio: 8181) in /src/main/resources/application.properties

server.port = 8181


@ Junchen Lui Questo perché è solo una soluzione alternativa. Se lo fai tutto il tempo, avrai molti tomcats inutilizzati in esecuzione. Meglio correggere l'errore in primo luogo.
Stimpson Cat

dam, questo funziona davvero senza configurare alcun xml o setup projecto
diego matos - keke


4

Utilizzando IntelliJ, ho ricevuto questo errore quando ho provato a eseguire un'app Spring mentre c'era già un'app in esecuzione. Ho dovuto fermare il primo. Successivamente, l'esecuzione della seconda app non ha restituito alcun errore.


4

immagine di Spring Tool Suite e pulsante di interruzione dell'applicazione

Nel mio caso, guardando nella finestra dei server è stato mostrato solo un server Tomcat che non avevo mai usato per questo progetto. Il mio progetto SpringBoot utilizzava un server Tomcat incorporato e non si è fermato al termine dell'applicazione. Questo pulsante che indico con una freccia rossa interromperà l'applicazione e il server Tomcat, quindi la prossima volta che eseguo l'applicazione non riceverò l'errore che un'istanza di Tomcat è già in esecuzione sulla porta 8080.

messaggi di errore effettivi:

Verifica la configurazione del connettore, identifica e interrompi qualsiasi processo in ascolto sulla porta 8080 o configura questa applicazione per l'ascolto su un'altra porta.

Causato da: java.net.BindException: indirizzo già in uso Causato da: org.apache.catalina.LifecycleException: service.getName (): "Tomcat"; Avvio del gestore del protocollo non riuscito

In questo tutorial cercherò ora di chiudere tutti i servizi al termine della mia applicazione SpringBoot Consuming Rest https://spring.io/guides/gs/consuming-rest/

stivale primaverile


3

per prima cosa, controlla chi usa la porta 8080.

se la porta 8080 è in uso, cambiare la porta di ascolto in 8181.

se usi IDEA, modifica la configurazione iniziale, Esegui-> Modifica configurazione inserisci qui la descrizione dell'immagine

se usi mvn spring-boot, usa il comando:

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

se usi java -jar, usa il comando:

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

2

Questo ha funzionato solo per me impostando proprietà aggiuntive e utilizzando numeri di porta arbitrari disponibili, come questo:

  • YML

/src/main/resources/application.yml

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

/src/main/resources/application.properties

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

1
Questo ha funzionato per me. In Spring Boot 2.0.3.RELEASE, la management.portchiave viene sostituita con management.server.port.
biniam

tomcat.jvmroute = 5478 mi ha aiutato a eseguire due istanze dell'applicazione insieme a server.port = 18181
Ritesh K,

2

Suggerirei di uccidere il numero di porta. Ha funzionato per me

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

2

Nel tuo file application.properties -

/ src / main / resources / application.properties

Cambia il numero di porta in qualcosa di simile -

server.port = 8181

O in alternativa puoi fornire un numero di porta alternativo durante l'esecuzione del tuo file jar - java -jar resource-server / build / libs / resource-server.jar --server.port = 8888


2

puoi configurare un altro numero di porta nel tuo IDE /src/main/resources/application.properties

server.port = 8081

altrimenti fare clic con il tasto destro sulla scheda della console IDE e selezionare Termina / Disconnetti tutto


1

Nel mio caso, Oracle TNS Service utilizzava la porta 8080, ho scoperto che utilizzando il comando "netstat - anob" come amministratore. Ho semplicemente utilizzato il database di arresto dal menu di avvio di Windows per interrompere il servizio ed è stato possibile avviare l'app SpringBoot senza alcun problema.

Inoltre, se non riesci a scoprire quale app sta utilizzando la porta 8080 e desideri solo eseguire l'app SprintBoot, puoi fare clic su Esegui come ... e negli argomenti della VM inserire: -Dserver.port = 0 (questo selezionerà qualsiasi porta disponibile) oppure puoi essere specifico come: -Dserver.port = 8081

Spero che sia d'aiuto.


Ho provato a cambiare il mio -Dserver.port = 0 e ho provato con due applicazioni, lanciate contemporaneamente. Ora entrambi aperti in diversi porti
hnahak

1

Puoi risolvere questo problema seguendo questi passaggi:

  1. Fare clic con il tasto destro sul progetto che si sta eseguendo.
  2. Fare clic su Esegui come ed Esegui configurazioni dall'opzione.
  3. Si aprirà una nuova configurazione della corsa. Nella scheda Spring Boot, vedere Proprietà di sostituzione .
  4. Aggiungi la coppia valore-proprietà come server.port=8181o qualsiasi altra porta di tua scelta. Questo sovrascriverà la porta predefinita che è 8080

1

È davvero una vecchia domanda. Forse questo è utile. Concentrandomi sul problema del titolo, è così che avvio le mie applicazioni e poi posso chiuderle facilmente. Modificare il numero di porta per ciascuna applicazione che si desidera avviare come menzionato sopra.

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

aggiungi questa dipendenza:

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

Ora puoi facilmente abbattere

curl -X POST localhost:8080/actuator/shutdown

1

Fare clic con il tasto destro nella console e fare clic sull'opzione Termina / Disconnetti tutto.

O

Fare clic sull'icona "Visualizza console selezionata" nell'angolo in alto a destra della finestra della console e scegliere e terminare la console che mantiene ferma la porta.


1

Questo errore si verifica fondamentalmente quando la porta specifica non è libera. Quindi ci sono due soluzioni, puoi liberare quella porta uccidendo o chiudendo il servizio che la sta usando oppure puoi eseguire la tua applicazione (tomcat) su una porta diversa.

Soluzione 1: liberare la porta

Su una macchina Linux puoi trovare l'id di processo del consumatore del port e poi ucciderlo. Utilizzare il seguente comando (si presume che la porta predefinita sia 8080)

netstat -pnltu | grep -i "8080"

L'output del comando sopra menzionato sarebbe qualcosa del tipo:

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

Quindi puoi facilmente uccidere il processo con il suo processid:

kill 20674

Su una macchina Windows per trovare un utilizzo processid netstat -ano -p tcp |find "8080". Per terminare il processo usa taskkill /F /PID 1234(invece di 1234 inserisci il processid fondato).

Soluzione 2: modificare la porta predefinita

Nel processo di sviluppo gli sviluppatori usano il port 8080che puoi cambiarlo facilmente. È necessario specificare il numero di porta desiderato nel application.propertiesfile del progetto ( /src/main/resources/application.properties) utilizzando la seguente specifica:

server.port=8081

È inoltre possibile impostare un numero di porta alternativo durante l'esecuzione del .jarfile

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

Si noti che a volte (non necessariamente) è necessario modificare anche altre porte come:

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

1

Questo perché la porta è già in esecuzione in background, quindi puoi riavviare eclipse e riprovare. OPPURE apri il file application.properties e modifica il valore di "server.port" con un altro valore come ad esempio: - 8000/8181


0

Chiudi l'applicazione, quindi riavviala dopo essere passato a una nuova porta:

${port:8181}

È possibile utilizzare qualsiasi nuova porta inutilizzata. Qui, ho usato la porta 8181.


@Bruce In che modo questo non tenta di fornire una risposta? Vedo un chiaro tentativo: chiudere l'applicazione; cambiare il porto; e riavviandolo. Potrebbe essere completamente sbagliato, ma ciò non significa che non sia un tentativo di risposta.
Annulla

0

Ho risolto questo problema, arrestando l'applicazione (quadrato rosso in Eclipse) prima di eseguirla nuovamente. Se non lo interrompi, l'applicazione rimane in modalità di esecuzione, quindi la porta è ancora utilizzata.


0

Hai un altro processo in ascolto sulla porta 8080, che è la porta predefinita utilizzata dal supporto web di Spring Boot. Devi interrompere il processo o configurare la tua app per l'ascolto su un'altra porta.

È possibile modificare la configurazione della porta aggiungendo server.port = 4040 (ad esempio) a src / main / resources / application.properties


0

Fondamentalmente il server predefinito di solito viene eseguito in background sulla porta 8080. Aprire services.msc e arrestare il server tomcat e provare a eseguire nuovamente l'applicazione di avvio a molla.


0

In Eclipse, se è installato Spring Tool Suite, è possibile accedere a Boot Dashboard ed espandere localmente in Explorer e fare clic con il pulsante destro del mouse sull'applicazione in esecuzione sulla porta 8080 e interromperla prima di eseguire nuovamente l'applicazione.


0

Provo a cambiare il numero di porta nel seguente file: /src/main/resources/application-prod.yml

E all'interno di questo file ho apportato questa modifica:

server: porta: 8100 (o quello che vuoi)

Spero che questo funzioni bene per te


0

Stavo cercando una soluzione per Windows ma non ne ho trovata. Infine, ho scoperto che esiste un'applicazione java penzolante che utilizza la porta. Forse è l'istanza precedente dell'applicazione di primavera e ha concluso il processo.

Ho usato tcpview di Microsoft . Mostra i servizi / le applicazioni che utilizzano la porta del computer.

inserisci qui la descrizione dell'immagine

Puoi terminare il processo. E fatto!


-1

Ho riscontrato lo stesso problema, ovvero l' avvio del gestore del protocollo non è riuscito . Perché la porta è già in uso . Ho scoperto se la porta era in uso o meno. Era. Quindi ho terminato il processo in esecuzione su quella porta e ho riavviato la mia applicazione di avvio primaverile. E ha funzionato. :)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.