Запуск адреси програми Spring вже використовується


96

У мене є ця помилка під час запуску мого весняного додатка:

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.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
Saif Asif

Так, мій порт 8181 безкоштовний
Ajouve

1
перевірте, чи працює порт за замовчуванням (8080) чи ні. У Windows використовуйте> netstat -a -o -n, а потім виконайте пошук у вашому порту немає, працює чи ні .... якщо він працює, зверніть увагу на відповідний йому pid. taskkill / f / pid {pidno}
Sagar Rout

Також неправильний IP у файлі конфігурації спричиняє цей виняток.
Xaqron

Відповіді:


107

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
Чи можна встановити його в конфігураціях? Наприклад, використовуючи анотацію?
Даніїл Шевелєв,

64
Введення server.port=8181у файл application.properties також повинно працювати.
Marcin Zajączkowski

Не забудьте почистити і побудувати ... це також допомагає
cheenbabes

4
Кращим варіантом для файлу application.properties є включення за замовчуванням із можливістю перевизначення сервера.port = $ {port: 8181}
Шон Вейдер

1
Велике спасибі людино !! Я шукав це рішення цілий день, і після додавання --server.port = 8181 воно вирішилося. спасибі
gsiradze

46

Виконайте наступну команду для пошуку процесу, який використовує порт

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

дам, це справді працює без налаштування будь-якого xml або налаштування projecto
diego matos - keke


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, змініть стартову конфігурацію, Виконати-> Редагувати конфігурацію введіть тут опис зображення

якщо ви використовуєте 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     

1
Це працювало для мене. У Spring boot 2.0.3.RELEASE management.portключ замінено на management.server.port.
biniam

tomcat.jvmroute = 5478 допоміг мені запустити два екземпляри програми разом із server.port = 18181
Ritesh K

2

Я б запропонував вбити номер порту. У мене це спрацювало

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

2

У вашій заявці .properties файлі -

/ src / main / resources / 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" в якості адміністратора. Просто застосувавши Базу даних вимкнення з меню «Пуск» Windows, щоб зупинити цю службу, можна було запустити програму SpringBoot без будь-яких проблем.

Крім того, якщо ви не можете дізнатись, яка програма використовує порт 8080 і просто хочете запустити програму SprintBoot, ви можете натиснути Запустити як ..., а в аргументах віртуальної машини введіть: -Dserver.port = 0 (буде вибрано будь-який випадковий доступний порт), або ви можете вказати конкретно, наприклад: -Dserver.port = 8081

Сподіваюся, це допомагає.


Я спробував змінити мій -Dserver.port = 0 і протестував два додатки, запущені одночасно. Зараз обидва відкриті в іншому порту
hnahak

1

Ви можете вирішити цю проблему, виконавши такі дії:

  1. Клацніть правою кнопкою миші на проекті, який ви запускаєте.
  2. Клацніть на Запустити як і Запустити конфігурації з опції.
  3. Відкриється нова конфігурація запуску. На вкладці Spring Boot див. Властивості Override .
  4. Додайте пару властивість-значення як server.port=8181або будь-який інший порт на ваш вибір. Це замінить порт за замовчуванням - 8080

1

Це справді давнє питання. Можливо, це корисно. Зосереджуючись на вашій проблемі з заголовком, це те, як я запускаю свої програми, а потім я можу легко їх вимкнути. Змініть номер порту для кожної програми, яку ви хочете запустити, як зазначено вище.

застосування. властивості

#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 введіть заснований процеід).

Рішення 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

Це пов’язано з тим, що порт вже працює у фоновому режимі, тому ви можете перезапустити 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 і спробуйте знову запустити програму spring boot.


0

У Eclipse, якщо встановлено Spring Tool Suite, ви можете перейти до інформаційної панелі завантаження та розгорнути локальний у провіднику та клацнути правою кнопкою миші на програмі, що працює на порту 8080, і зупинити її перед тим, як запускати програму.


0

Я намагаюся змінити номер порту в наступному файлі - /src/main/resources/application-prod.yml

І всередині цього файлу я вніс цю зміну:

сервер: порт: 8100 (або що завгодно)

Я сподіваюся, що ця воля буде добре для вас


0

Я шукав рішення для Windows, але не знайшов жодного. Нарешті, з’ясував, що існує звисаючий додаток Java, що використовує порт. Можливо, це попередній екземпляр весняної програми та завершив процес.

Я використовував tcpview від Microsoft . Він показує послуги / програми, за допомогою яких портів на вашому комп’ютері.

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

Ви можете закінчити процес. І готово!


-1

Я отримував ту саму проблему, тобто запуск обробника протоколу не вдався . Причина в тому, що порт вже використовується . Я виявив, чи використовується порт чи ні. Це було. Тож я вбив процес, який працював на цьому порту, і перезапустив мою програму весняного завантаження. І це спрацювало. :)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.