Запуск приложения Spring Адрес уже используется

97

У меня есть эта ошибка при запуске моего весеннего приложения:

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

Думаю, это потому, что используется мой порт. Мой порт 8080 используется, поэтому я пробую порт 8181 У меня нет приложения на порту 8181

в tomcat server.xml я установил порт на 8181, но проблема не исчезла

Я нахожу этот пост:

Альтернативный порт для Tomcat (не 8080) при запуске с Maven?

Но у меня такая же проблема после запуска mvn -Dmaven.tomcat.port = 8181 tomcat: run-war

Я действительно не понимаю, как maven связан с сервером tomcat Это мой 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>

Спасибо за вашу помощь

Ажув
источник
Сначала убедитесь, что эти порты «действительно» доступны. Теперь я предполагаю, что вы используете какую-то систему * Unix (я догадываюсь по разделителю пути), откройте свой терминал и запустите, netstat -tuplenчтобы получить полный список используемых портов с соответствующими идентификаторами процесса. Проверьте оттуда, свободны ли порты, прежде чем запускать tomcat
Саиф Асиф
Да, мой порт
8181
1
проверьте, работает ли порт по умолчанию (8080) или нет. В Windows используйте> netstat -a -o -n, а затем найдите свой порт, независимо от того, запущен он или нет .... если он работает, обратите внимание на соответствующий ему pid. taskkill / f / pid {pidno}
Sagar Rout
Это исключение также вызывает неправильный IP-адрес в файле конфигурации.
Xaqron

Ответы:

108

Spring Boot по умолчанию использует встроенный Tomcat, но обрабатывает его иначе, не используя tomcat-maven-plugin. Для изменения порта используйте --server.portпараметр, например:

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

Обновить . В качестве альтернативы поместите server.port=8181в application.properties(или application.yml).

Марцин Зайончковски
источник
2
Можно ли в конфигурациях установить? Например, используя аннотацию?
Даниил Шевелев
65
Помещение server.port=8181в ваш файл application.properties также должно работать.
Marcin Zajączkowski
Не забывайте чистить и строить ... это тоже помогает
cheenbabes
4
Лучшим вариантом для файла application.properties является включение значения по умолчанию с возможностью переопределения server.port = $ {port: 8181}
Шон Вейдер
1
Большое спасибо, чувак !! Я искал это решение целый день, и после добавления --server.port = 8181 он решил. спасибо
gsiradze
47

Выполните следующую команду, чтобы найти процесс, использующий порт

lsof -i :<portNumber> | grep LISTEN

в вашем случае это будет ->

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

78960 - это идентификатор процесса, используйте следующую команду, чтобы убить процесс

kill -9 78960

Снова запустите приложение.

Пракаш Кришнан
источник
1
Мне пришлось использовать эту команду, чтобы заставить ее работать на моем Mac: sudo lsof -n -P | grep СЛУШАТЬ. Mac предложит вам ввести пароль, поскольку вы используете sudo.
Саймон
Спасибо за ответ здесь. Только это решение работает с IntelliJ
AMIC MING
30

Настройте другой номер порта (например: 8181 ) в /src/main/resources/application.properties

server.port = 8181

Высахан Кастури
источник
@Junchen Lui Это потому, что это всего лишь обходной путь. Если вы будете делать это все время, у вас будет много неиспользованных котов. Лучше исправить ошибку в первую очередь.
Stimpson Cat
черт возьми
12

Перед повторным запуском необходимо остановить сервер. Найдите значок красного квадрата или представление сервера.

Помагранит
источник
да, это была проблема затмения. Вот как остановить Tomcat в NetBeans: stackoverflow.com/questions/543439/…
Tomasz Mularczyk
4

Используя IntelliJ, я получил эту ошибку, когда пытался запустить приложение Spring, когда одно приложение уже было запущено. Пришлось остановить первую. После этого запуск второго приложения не возвращал ошибок.

вовахост
источник
4

изображение Spring Tool Suite и кнопка остановки приложения

В моем случае просмотр в окне серверов показал только сервер tomcat, который я никогда не использовал для этого проекта. В моем проекте SpringBoot использовался встроенный сервер tomcat, и он не остановился, когда мое приложение было завершено. Эта кнопка, которую я обозначил красной стрелкой, остановит приложение и сервер Tomcat, поэтому в следующий раз, когда я запущу приложение, я не получу сообщение об ошибке, что экземпляр Tomcat уже запущен на порту 8080.

фактические сообщения об ошибках:

Проверьте конфигурацию коннектора, определите и остановите любой процесс, который прослушивает порт 8080, или настройте это приложение на прослушивание другого порта.

Вызвано: java.net.BindException: адрес уже используется Вызвано: org.apache.catalina.LifecycleException: service.getName (): "Tomcat"; Не удалось запустить обработчик протокола

Теперь я буду искать способ закрыть все службы по завершении моего приложения SpringBoot Consuming Rest в этом руководстве https://spring.io/guides/gs/consuming-rest/

пружинный сапог

Джесси Бойд
источник
3

Сначала проверьте, кто использует порт 8080.

если используется порт 8080, измените порт прослушивания на 8181.

если вы используете IDEA, измените начальную конфигурацию, Run-> Edit Configuration введите описание изображения здесь

если вы используете mvn spring-boot, используйте команду:

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

если вы используете java -jar, используйте команду:

java -jar xxxx.jar --server.port=8181
умолять
источник
2

У меня это сработало только путем установки дополнительных свойств и использования доступных произвольных номеров портов, например:

  • YML

/src/main/resources/application.yml

server:
  port: 18181
management:
  port: 9191
tomcat:
  jvmroute: 5478
  ajp:
    port: 4512
    redirectPort: 1236
  • Свойства

/src/main/resources/application.properties

server.port=18181
management.port=9191
tomcat.jvmroute=5478
tomcat.ajp.port=4512
tomcat.ajp.redirectPort=1236     
Emecas
источник
1
Это сработало для меня. В Spring boot 2.0.3.RELEASE management.portключ заменяется на management.server.port.
biniam
tomcat.jvmroute = 5478 помог мне запустить два экземпляра приложения вместе с server.port = 18181
Ритеш К.
2

Я бы предложил убить номер порта. Это сработало для меня

netstat -ano | findstr :yourPortNumber taskkill /PID typeyourPIDhere /F
Адитья Радж
источник
2

В вашем файле application.properties -

/ SRC / основные / ресурсы / application.properties

Измените номер порта на что-то вроде этого -

server.port = 8181

Или, в качестве альтернативы, вы можете указать альтернативный номер порта при выполнении вашего файла jar - java -jar resource-server / build / libs / resource-server.jar --server.port = 8888

Викаш Сингх
источник
2

вы можете настроить другой номер порта в своей среде IDE /src/main/resources/application.properties

server.port = 8081

в противном случае щелкните правой кнопкой мыши вкладку консоли IDE и выберите « Завершить / отключить все».

Малит Вита
источник
1

В моем случае служба Oracle TNS использовала порт 8080 и обнаружила, что при выполнении команды "netstat - anob" от имени администратора. Просто использовал Shutdown Database из меню «Пуск» Windows, чтобы остановить эту службу, и смог без проблем запустить приложение SpringBoot.

Также, если вы не можете узнать, какое приложение использует порт 8080, и просто хотите запустить приложение SprintBoot, вы можете нажать «Запуск от имени» ... и в аргументах виртуальной машины введите: -Dserver.port = 0 (это выберет любой случайный доступный порт), или вы можете указать его, например: -Dserver.port = 8081

Надеюсь, поможет.

МАБ
источник
Я попытался изменить свой -Dserver.port = 0 и протестировал два приложения, запущенных одновременно. Теперь оба открыты в разных портах
hnahak
1

Вы можете решить эту проблему, выполнив следующие действия:

  1. Щелкните правой кнопкой мыши запущенный проект.
  2. Нажмите « Запуск от имени» и « Запустить конфигурации» в соответствующем параметре.
  3. Откроется новая конфигурация запуска. На вкладке Spring Boot см. Свойства переопределения .
  4. Добавьте пару "свойство-значение" как server.port=8181или любой другой порт по вашему выбору. Это переопределит порт по умолчанию, 8080
Рипудаман Сингх
источник
1

Это действительно старый вопрос. Может быть, это полезно. Сосредоточившись на проблеме с заголовком, я запускаю свои приложения, а затем могу легко их закрыть. Измените номер порта для каждого приложения, которое вы хотите запустить, как указано выше.

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

добавьте эту зависимость:

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

Теперь вы можете легко стрелять

curl -X POST localhost:8080/actuator/shutdown
Джим С
источник
1

Щелкните правой кнопкой мыши в консоли и выберите параметр «Завершить / отключить все».

ИЛИ

Щелкните значок «Показать выбранную консоль» в правом верхнем углу окна консоли, а затем выберите и завершите работу консоли, на которой порт все еще находится.

Нагарадж Паттар
источник
1

Эта ошибка в основном возникает, когда конкретный порт не свободен. Итак, есть два решения: вы можете освободить этот порт, отключив или закрыв службу, которая его использует, или вы можете запустить свое приложение (tomcat) на другом порту.

Решение 1. Освободите порт

На машине Linux вы можете найти идентификатор процесса потребителя порта и затем убить его. Используйте следующую команду (предполагается, что порт по умолчанию - 8080)

netstat -pnltu | grep -i "8080"

Результат вышеупомянутой команды будет примерно таким:

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

Тогда вы можете легко убить процесс с его processid:

kill 20674

На машине Windows, чтобы найти применение процессу netstat -ano -p tcp |find "8080". Чтобы убить процесс, используйте taskkill /F /PID 1234(вместо 1234 введите найденный processid).

Решение 2. Измените порт по умолчанию

В процессе разработки разработчики используют то, port 8080что вы можете легко изменить. Вам необходимо указать желаемый номер порта в application.propertiesфайле вашего проекта ( /src/main/resources/application.properties), используя следующую спецификацию:

server.port=8081

Вы также можете установить альтернативный номер порта при выполнении .jarфайла.

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

Обратите внимание, что иногда (не обязательно) вам нужно изменить и другие порты, например:

management.port=
tomcat.jvmroute=
tomcat.ajp.port=
tomcat.ajp.redirectPort=
etc...
Эльяс Хадизаде
источник
1

Искал решение для Windows, но не нашел. Наконец, выяснилось, что есть болтающееся Java-приложение, использующее порт. Может быть, это более ранний экземпляр весеннего приложения и завершил процесс.

Я использовал tcpview от Microsoft . Он показывает службы / приложения, которые используют порт вашего компьютера.

введите описание изображения здесь

Вы можете завершить процесс. Готово!

Шивам Агарвал
источник
1

Это связано с тем, что порт уже работает в фоновом режиме, поэтому вы можете перезапустить eclipse и повторить попытку. ИЛИ откройте файл application.properties и измените значение server.port на другое значение, например: - 8000/8181

Рибин
источник
0

Закройте приложение, а затем перезапустите его после перехода на новый порт:

${port:8181}

Вы можете использовать любой новый неиспользуемый порт. Здесь я использовал порт 8181.

Патан Хан
источник
@Bruce Как это не попытка дать ответ? Вижу явную попытку: закрыть приложение; изменение порта; и перезапускаем его. Возможно, это совершенно неверно, но это не значит, что это не попытка ответить.
Отменить
0

Я решил эту проблему, остановив приложение (красный квадрат в Eclipse) перед повторным запуском. Если вы не остановите его, приложение останется в рабочем режиме, поэтому порт все еще будет использоваться.

Омар Б.
источник
0

У вас есть другой процесс, который прослушивает порт 8080, который является портом по умолчанию, который используется веб-поддержкой Spring Boot. Вам нужно либо остановить этот процесс, либо настроить приложение для прослушивания другого порта.

Вы можете изменить конфигурацию порта, добавив server.port = 4040 (например) в src / main / resources / application.properties

Кришна
источник
0

Обычно сервер по умолчанию обычно работает в фоновом режиме на порту 8080. Откройте services.msc, остановите сервер tomcat и попробуйте снова запустить приложение весенней загрузки.

Варуаг
источник
0

В Eclipse, если установлен Spring Tool Suite, вы можете перейти в Boot Dashboard и развернуть локальный файл в проводнике, щелкнуть правой кнопкой мыши приложение, работающее на порту 8080, и остановить его перед повторным запуском приложения.

карта
источник
0

Я пытаюсь изменить номер порта в следующем файле - /src/main/resources/application-prod.yml

И внутри этого файла я сделал следующее изменение:

сервер: порт: 8100 (или как хотите)

Я надеюсь, что это сработает для вас

Jonan87
источник
-1

У меня возникла такая же проблема, т.е. не удалось запустить обработчик протокола . Причина была порт уже используется . Я выяснил, используется порт или нет. Это было. Итак, я остановил процесс, работавший на этом порту, и перезапустил приложение для весенней загрузки. И это сработало. :)

Spiderohara
источник