Starten der Spring-Anwendung Die bereits verwendete Adresse

96

Ich habe diesen Fehler beim Starten meiner Frühlingsanwendung:

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

Ich denke, das liegt daran, dass mein Port verwendet wird. Mein Port 8080 wird verwendet, also versuche ich den Port 8181. Ich habe keine Anwendung auf dem Port 8181

In der Datei tomcat server.xml habe ich den Port auf 8181 gesetzt, aber das Problem besteht weiterhin

Ich finde diesen Beitrag:

Alternativer Port für Tomcat (nicht 8080) beim Starten mit Maven?

Aber ich habe das gleiche Problem nach dem Start von mvn -Dmaven.tomcat.port = 8181 tomcat: run-war

Ich verstehe nicht wirklich, wie man Maven mit dem Tomcat-Server verknüpft. Dies ist meine 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>

Danke für Ihre Hilfe

Ajouve
quelle
Stellen Sie zunächst sicher, dass diese Ports "wirklich" verfügbar sind. Jetzt verwenden Sie vermutlich ein * Unix-System (ich vermute vom Pfadbegrenzer), öffnen Ihr Terminal und führen es aus netstat -tuplen, um eine vollständige Liste der verwendeten Ports mit ihren jeweiligen Prozess-IDs zu erhalten. Überprüfen Sie von dort aus, ob die Ports frei sind, bevor Sie tomcat
Saif Asif
Ja, mein Port 8181 ist frei
Ajouve
1
Überprüfen Sie, ob der Standardport (8080) ausgeführt wird oder nicht. Verwenden Sie unter Windows> netstat -a -o -n und durchsuchen Sie dann Ihren Port no, ob ausgeführt wird oder nicht .... Wenn er ausgeführt wird, notieren Sie die entsprechende PID. taskkill / f / pid {pidno}
Sagar Rout
Auch eine falsche IP in der Konfigurationsdatei verursacht diese Ausnahme.
Xaqron

Antworten:

107

Spring Boot verwendet standardmäßig eingebettetes Tomcat, behandelt es jedoch anders, ohne es zu verwenden tomcat-maven-plugin. Verwenden Sie zum Ändern des Ports den folgenden --server.portParameter:

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

Update . Alternativ server.port=8181in application.properties(oder application.yml) setzen.

Marcin Zajączkowski
quelle
2
Ist es möglich, es in Konfigurationen einzustellen? Zum Beispiel mit Annotation?
Daniil Shevelev
64
Das Einfügen server.port=8181in die Datei application.properties sollte ebenfalls funktionieren.
Marcin Zajączkowski
Vergessen Sie nicht zu reinigen und zu bauen ... das hilft auch
Cheenbabes
4
Eine bessere Option für die Datei application.properties ist das Einfügen einer Standardeinstellung mit der Überschreibungsfunktion server.port = $ {port: 8181}
Shawn Vader
1
Vielen Dank Alter!! Ich habe diese Lösung den ganzen Tag gesucht und nach dem Hinzufügen von --server.port = 8181 wurde sie gelöst. danke
gsiradze
46

Führen Sie den folgenden Befehl aus, um nach dem Prozess zu suchen, der den Port verwendet

lsof -i :<portNumber> | grep LISTEN

in Ihrem Fall ist dies ->

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

Der 78960 ist die Prozess-ID. Verwenden Sie den folgenden Befehl, um den Prozess abzubrechen

kill -9 78960

Starten Sie die Anwendung erneut.

Prakash Krishna
quelle
1
Ich musste diesen Befehl verwenden, damit er auf meinem Mac funktioniert: sudo lsof -n -P | grep HÖREN. Der Mac fordert Sie auf, Ihr Passwort einzugeben, während Sie sudo verwenden.
Simon
Danke für die Antwort hier. Nur diese Lösung funktioniert mit IntelliJ
AMIC MING
29

Konfigurieren Sie eine andere Portnummer (z. B. 8181) in /src/main/resources/application.properties

server.port = 8181

Vysakhan Kasthuri
quelle
@Junchen Lui Das liegt daran, dass es nur eine Problemumgehung ist. Wenn Sie dies die ganze Zeit tun, werden viele unbenutzte Kater laufen. Beheben Sie den Fehler besser an erster Stelle.
Stimpson Cat
verdammt
12

Sie müssen den Server stoppen, bevor Sie ihn neu starten. Suchen Sie nach dem roten Kästchensymbol oder der Serveransicht.

Pomagranit
quelle
Ja, das war ein Problem bei der Sonnenfinsternis. So stoppen Sie Tomcat in NetBeans: stackoverflow.com/questions/543439/…
Tomasz Mularczyk
4

Bei Verwendung von IntelliJ wurde dieser Fehler angezeigt, als ich versuchte, eine Spring-App auszuführen, während bereits eine App ausgeführt wurde. Ich musste den ersten stoppen. Danach gab das Ausführen der zweiten App keine Fehler zurück.

vovahost
quelle
4

Bild der Spring Tool Suite und Schaltfläche zum Beenden der Anwendung

In meinem Fall wurde im Serverfenster nur ein Tomcat-Server angezeigt, den ich noch nie für dieses Projekt verwendet hatte. Mein SpringBoot-Projekt verwendete einen eingebetteten Tomcat-Server und wurde nicht beendet, als meine Anwendung beendet wurde. Diese Schaltfläche, die ich mit einem roten Pfeil anzeige, stoppt die Anwendung und den Tomcat-Server, sodass beim nächsten Ausführen der Anwendung nicht die Fehlermeldung angezeigt wird, dass eine Tomcat-Instanz bereits auf Port 8080 ausgeführt wird.

aktuelle Fehlermeldungen:

Überprüfen Sie die Konfiguration des Connectors, identifizieren und stoppen Sie alle Prozesse, die Port 8080 überwachen, oder konfigurieren Sie diese Anwendung so, dass sie einen anderen Port überwacht.

Auslöser: java.net.BindException: Adresse wird bereits verwendet Auslöser: org.apache.catalina.LifecycleException: service.getName (): "Tomcat"; Der Start des Protokollhandlers ist fehlgeschlagen

In diesem Tutorial https://spring.io/guides/gs/consuming-rest/ werde ich nun nach einer Möglichkeit suchen, alle Dienste nach Abschluss meiner SpringBoot Consuming Rest-Anwendung herunterzufahren.

Federstiefel

JesseBoyd
quelle
3

Überprüfen Sie zunächst, wer Port 8080 verwendet.

Wenn der Port 8080 verwendet wird, ändern Sie den Überwachungsport auf 8181.

Wenn Sie IDEA verwenden, ändern Sie die Startkonfiguration. Führen Sie Run-> Edit Configuration aus. Geben Sie hier die Bildbeschreibung ein

Wenn Sie mvn spring-boot verwenden, verwenden Sie den folgenden Befehl:

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

Wenn Sie Java-Jar verwenden, verwenden Sie den folgenden Befehl:

java -jar xxxx.jar --server.port=8181
bettelnd
quelle
2

Dies funktionierte nur für mich, indem zusätzliche Eigenschaften festgelegt und verfügbare beliebige Portnummern wie folgt verwendet wurden:

  • YML

/src/main/resources/application.yml

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

/src/main/resources/application.properties

server.port=18181
management.port=9191
tomcat.jvmroute=5478
tomcat.ajp.port=4512
tomcat.ajp.redirectPort=1236     
emecas
quelle
1
Das hat bei mir funktioniert. In Spring Boot 2.0.3.RELEASE wird der management.portSchlüssel durch ersetzt management.server.port.
Biniam
tomcat.jvmroute = 5478 hat mir geholfen, zwei Instanzen der Anwendung zusammen mit server.port = 18181
Ritesh K
2

Ich würde vorschlagen, die Portnummer zu töten. Es hat bei mir funktioniert

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

In Ihrer application.properties- Datei -

/ src / main / resources / application.properties

Ändern Sie die Portnummer in etwa so -

server.port = 8181

Alternativ können Sie beim Ausführen Ihrer JAR-Datei eine alternative Portnummer angeben - java -jar resource-server / build / libs / resource-server.jar --server.port = 8888

Vikash Singh
quelle
2

Sie können eine andere Portnummer in Ihrer IDE /src/main/resources/application.properties konfigurieren

server.port = 8081

Andernfalls klicken Sie mit der rechten Maustaste auf die Registerkarte IDE- Konsole und wählen Sie Alle beenden / trennen

Malith Vitha
quelle
1

In meinem Fall verwendete Oracle TNS Service Port 8080 und stellte fest, dass der Befehl "netstat - anob" als Administrator ausgeführt wurde. Verwenden Sie einfach Shutdown Database aus dem Windows-Startmenü, um diesen Dienst zu beenden, und konnten Sie die SpringBoot-App ohne Probleme starten.

Wenn Sie nicht herausfinden können, welche App den 8080-Port verwendet und nur die SprintBoot-App ausführen möchten, können Sie auf Ausführen als ... klicken und in die VM-Argumente Folgendes eingeben: -Dserver.port = 0 (dies wählt einen beliebigen Zufall aus verfügbarer Port) oder Sie können spezifisch sein wie: -Dserver.port = 8081

Ich hoffe es hilft.

MAB
quelle
Ich habe versucht, mein -Dserver.port = 0 zu ändern, und mit zwei Anwendungen getestet, die gleichzeitig gestartet wurden. Jetzt öffnen beide in verschiedenen Häfen
hnahak
1

Sie können dies folgendermaßen beheben:

  1. Klicken Sie mit der rechten Maustaste auf das Projekt, das Sie ausführen.
  2. Klicken Sie in der Option auf Ausführen als und Konfigurationen ausführen.
  3. Eine neue Ausführungskonfiguration wird geöffnet. Unter Spring Boot Tab finden Sie Informationen zu Override-Eigenschaften .
  4. Fügen Sie das Eigenschafts-Wert-Paar als server.port=8181oder einen anderen Port Ihrer Wahl hinzu. Dadurch wird der Standardport 8080 überschrieben
Ripudaman Singh
quelle
1

Klicken Sie mit der rechten Maustaste in die Konsole und klicken Sie auf die Option Alle beenden / trennen.

ODER

Klicken Sie oben rechts im Konsolenfenster auf das Symbol "Ausgewählte Konsole anzeigen" und wählen Sie die Konsole aus, die den Port noch hält, und beenden Sie sie.

Nagaraj Pattar
quelle
1

Dieser Fehler tritt grundsätzlich auf, wenn der jeweilige Port nicht frei ist. Es gibt also zwei Lösungen: Sie können diesen Port freigeben, indem Sie den Dienst, der ihn verwendet, beenden oder schließen, oder Sie können Ihre Anwendung (Tomcat) auf einem anderen Port ausführen.

Lösung 1: Geben Sie den Port frei

Auf einem Linux-Computer können Sie die Prozess-ID des Konsumenten des Ports finden und dann beenden. Verwenden Sie den folgenden Befehl (es wird davon ausgegangen, dass der Standardport 8080 ist).

netstat -pnltu | grep -i "8080"

Die Ausgabe des oben genannten Befehls wäre ungefähr so:

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

Dann können Sie den Prozess einfach mit seiner Prozess-ID beenden:

kill 20674

Auf einem Windows-Computer, um eine Prozess-ID-Verwendung zu finden netstat -ano -p tcp |find "8080". Um den Prozess zu beenden, verwenden Sie taskkill /F /PID 1234(anstelle von 1234 geben Sie die gegründete Prozess- ID ein).

Lösung 2: Ändern Sie den Standardport

Im Entwicklungsprozess verwenden Entwickler das port 8080, was Sie leicht ändern können. Sie müssen Ihre gewünschte Portnummer in der application.propertiesDatei Ihres Projekts ( /src/main/resources/application.properties) unter Verwendung der folgenden Spezifikation angeben :

server.port=8081

Sie können während der Ausführung der .jarDatei auch eine alternative Portnummer festlegen

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

Bitte beachten Sie, dass Sie manchmal (nicht unbedingt) auch andere Ports ändern müssen, wie zum Beispiel:

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

Dies liegt daran, dass der Port bereits im Hintergrund ausgeführt wird. Sie können die Eclipse also neu starten und es erneut versuchen. ODER öffnen Sie die Datei application.properties und ändern Sie den Wert von 'server.port' in einen anderen Wert wie z. B.: - 8000/8181

Ribin
quelle
0

Schließen Sie die Anwendung und starten Sie sie neu, nachdem Sie zu einem neuen Port gewechselt haben:

${port:8181}

Sie können jeden neuen nicht verwendeten Port verwenden. Hier habe ich Port 8181 verwendet.

Patan Khan
quelle
@ Bruce Wie versucht dies nicht, eine Antwort zu geben? Ich sehe einen klaren Versuch: Schließen der Anwendung; Ändern des Hafens; und neu starten. Es mag völlig falsch sein, aber das bedeutet nicht, dass es kein Versuch ist, zu antworten.
Rückgängig machen
0

Ich habe dieses Problem behoben, indem ich die Anwendung gestoppt habe (rotes Quadrat in Eclipse), bevor ich sie erneut ausführte . Wenn Sie es nicht stoppen, bleibt die Anwendung im Ausführungsmodus, sodass der Port weiterhin verwendet wird.

Omar B.
quelle
0

Sie haben einen anderen Prozess, der Port 8080 überwacht. Dies ist der Standardport, der von der Webunterstützung von Spring Boot verwendet wird. Sie müssen diesen Prozess entweder stoppen oder Ihre App so konfigurieren, dass sie einen anderen Port überwacht.

Sie können die Portkonfiguration ändern, indem Sie beispielsweise server.port = 4040 zu src / main / resources / application.properties hinzufügen

krishna
quelle
0

Grundsätzlich wird der Standardserver normalerweise im Hintergrund an Port 8080 ausgeführt. Öffnen Sie services.msc, stoppen Sie den Tomcat-Server und versuchen Sie erneut, die Spring-Boot-Anwendung auszuführen.

varuag
quelle
0

Wenn in Eclipse Spring Tool Suite installiert ist, können Sie zum Boot-Dashboard gehen und im Explorer lokal erweitern und mit der rechten Maustaste auf die Anwendung klicken, die auf Port 8080 ausgeführt wird, und sie stoppen, bevor Sie Ihre Anwendung erneut ausführen.

karthi
quelle
0

Ich versuche, die Portnummer in der folgenden Datei zu ändern: /src/main/resources/application-prod.yml

Und in dieser Datei habe ich diese Änderung vorgenommen:

Server: Port: 8100 (oder was auch immer Sie wollen)

Ich hoffe, dass dies gut für Sie funktioniert

Jonan87
quelle
0

Es ist wirklich eine alte Frage. Vielleicht ist das nützlich. Wenn ich mich auf Ihr Titelproblem konzentriere, starte ich meine Anwendungen und kann sie dann einfach herunterfahren. Ändern Sie die Portnummer für jede Anwendung, die Sie starten möchten, wie oben beschrieben.

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

Fügen Sie diese Abhängigkeit hinzu:

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

Jetzt können Sie ganz einfach abschießen

curl -X POST localhost:8080/actuator/shutdown
Jim C.
quelle
0

Ich suchte nach einer Lösung für Windows, fand aber keine. Schließlich stellte sich heraus, dass es eine baumelnde Java-Anwendung gibt, die den Port verwendet. Vielleicht ist es die frühere Instanz der Frühjahrsanwendung und hat den Prozess beendet.

Ich habe tcpview von Microsoft verwendet . Es zeigt Dienste / Anwendungen an, die welchen Port Ihres Computers verwenden.

Geben Sie hier die Bildbeschreibung ein

Sie können den Vorgang beenden. Und fertig!

Shivam Agarwal
quelle
-1

Ich hatte das gleiche Problem, dh der Start des Protokollhandlers ist fehlgeschlagen . Ursache war, dass der Port bereits verwendet wird . Ich habe festgestellt, ob der Port verwendet wird oder nicht. Es war. Also habe ich den Prozess beendet, der auf diesem Port ausgeführt wurde, und meine Spring-Boot-Anwendung neu gestartet. Und es hat funktioniert. :) :)

Spiderohara
quelle