Khởi chạy ứng dụng Spring Địa chỉ đã được sử dụng


96

Tôi gặp lỗi này khi khởi chạy ứng dụng mùa xuân của mình:

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

Tôi nghĩ điều này là do cổng của tôi đã được sử dụng. Cổng 8080 của tôi được sử dụng nên tôi thử cổng 8181 Tôi không có ứng dụng nào trên cổng 8181

trong tomcat server.xml, tôi đặt cổng thành 8181 nhưng sự cố vẫn tiếp diễn

Tôi tìm thấy bài đăng này:

Cổng thay thế cho Tomcat (không phải 8080) khi bắt đầu với Maven?

Nhưng tôi gặp vấn đề tương tự sau khi khởi chạy mvn -Dmaven.tomcat.port = 8181 tomcat: run-war

Tôi không thực sự hiểu cách maven được liên kết với máy chủ tomcat Đây là pom.xml của tôi

<?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>

Cảm ơn bạn đã giúp đỡ


Trước tiên, hãy đảm bảo rằng các cổng này 'thực sự' có sẵn để bắt đầu. Bây giờ tôi đoán rằng bạn đang sử dụng hệ thống * Unix nào đó (tôi đoán từ dấu phân cách đường dẫn), hãy mở thiết bị đầu cuối của bạn và chạy netstat -tuplenđể nhận danh sách đầy đủ các cổng đã sử dụng với các processID tương ứng của chúng. Xác minh từ đó cho dù các cổng được miễn sử dụng trước khi bắt đầu tomcat
Saif Asif

Có, cổng 8181 của tôi miễn phí
Ajouve

1
kiểm tra xem cổng mặc định (8080) có đang chạy hay không. Trong Windows, hãy sử dụng> netstat -a -o -n và sau đó tìm kiếm cổng của bạn xem có đang chạy hay không .... nếu nó đang chạy thì lưu ý pid tương ứng với nó. taskkill / f / pid {pidno}
Sagar Rout

Cũng sai IP trong tệp cấu hình gây ra ngoại lệ này.
Xaqron

Câu trả lời:


107

Spring Boot sử dụng Tomcat nhúng theo mặc định, nhưng nó xử lý nó theo cách khác mà không cần sử dụng tomcat-maven-plugin. Để thay đổi --server.portthông số sử dụng cổng, ví dụ:

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

Cập nhật . Hoặc đưa server.port=8181vào application.properties(hoặc application.yml).


2
Có thể đặt nó trong các cấu hình không? Ví dụ sử dụng chú thích?
Daniil Sheboardsv

64
Việc đưa server.port=8181vào tệp application.properties của bạn cũng sẽ hoạt động.
Marcin Zajączkowski

Đừng quên sạch và xây dựng ... mà còn giúp
cheenbabes

4
Một lựa chọn tốt hơn cho các tập tin application.properties là bao gồm một mặc định với khả năng ghi đè server.port = $ {port: 8181}
Shawn Vader

1
Cám ơn nhiều, ông bạn!! Tôi đã tìm kiếm giải pháp đó cả ngày và sau khi thêm --server.port = 8181, nó đã giải được. cảm ơn
gsiradze

46

Chạy lệnh sau để tìm kiếm quá trình đang sử dụng cổng

lsof -i :<portNumber> | grep LISTEN

trong trường hợp của bạn đây sẽ là ->

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

78960 là id quy trình, sử dụng lệnh sau để hủy quy trình

kill -9 78960

Khởi chạy lại ứng dụng.


1
Tôi đã phải sử dụng lệnh này để làm cho nó hoạt động trên mac của tôi: sudo lsof -n -P | grep NGHE. Mac sẽ nhắc bạn nhập mật khẩu khi bạn đang sử dụng sudo.
Simon,

Cảm ơn vì câu trả lời ở đây. Chỉ giải pháp này làm việc với IntelliJ
Amic MING

30

Định cấu hình số cổng khác (ví dụ: 8181) trong /src/main/resources/application.properties

server.port = 8181


@Junchen Lui Đó là bởi vì nó chỉ là một cách giải quyết. Nếu bạn làm điều này mọi lúc, bạn sẽ có rất nhiều tomcats không sử dụng đang chạy. Tốt hơn hãy sửa lỗi ngay từ đầu.
Stimpson Cat,

đập, điều này thực sự hoạt động mà không cấu hình bất kỳ xml hoặc thiết lập projecto
Matos diego - keke


4

Khi sử dụng IntelliJ, tôi gặp lỗi này khi cố chạy ứng dụng Spring trong khi có một ứng dụng đang chạy. Tôi đã phải dừng cái đầu tiên. Sau đó, chạy ứng dụng thứ hai không trả lại bất kỳ lỗi nào.


4

hình ảnh của Bộ công cụ mùa xuân và nút dừng ứng dụng

Trong trường hợp của tôi, tìm kiếm trong cửa sổ máy chủ chỉ hiển thị một máy chủ tomcat mà tôi chưa bao giờ sử dụng cho dự án này. Dự án SpringBoot của tôi đã sử dụng một máy chủ tomcat được nhúng và nó không dừng lại khi ứng dụng của tôi hoàn tất. Nút này mà tôi biểu thị bằng mũi tên màu đỏ sẽ dừng ứng dụng và máy chủ Tomcat nên lần sau khi tôi chạy ứng dụng, tôi sẽ không gặp lỗi vì Phiên bản Tomcat đã chạy trên cổng 8080.

thông báo lỗi thực tế:

Xác minh cấu hình của trình kết nối, xác định và dừng bất kỳ quá trình nào đang lắng nghe trên cổng 8080 hoặc định cấu hình ứng dụng này để lắng nghe trên một cổng khác.

Gây ra bởi: java.net.BindException: Địa chỉ đã được sử dụng Gây ra bởi: org.apache.catalina.LifecycleException: service.getName (): "Tomcat"; Không bắt đầu được trình xử lý giao thức

Bây giờ tôi sẽ tìm cách để tắt tất cả các dịch vụ khi hoàn thành ứng dụng SpringBoot Consumering Rest trong hướng dẫn này https://spring.io/guides/gs/consuming-rest/

khởi động lò xo


3

trước tiên, hãy kiểm tra xem ai sử dụng cổng 8080.

nếu cổng 8080 đang được sử dụng, hãy thay đổi cổng nghe thành 8181.

nếu bạn sử dụng IDEA, hãy sửa đổi cấu hình bắt đầu, Chạy-> Chỉnh sửa Cấu hình nhập mô tả hình ảnh vào đây

nếu bạn sử dụng mvn spring-boot, hãy sử dụng lệnh:

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

nếu bạn sử dụng java -jar, thì hãy sử dụng lệnh:

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

2

Điều này chỉ hoạt động đối với tôi bằng cách thiết lập các thuộc tính bổ sung và sử dụng số cổng tùy ý có sẵn, như thế này:

  • YML

/src/main/resources/application.yml

server:
  port: 18181
management:
  port: 9191
tomcat:
  jvmroute: 5478
  ajp:
    port: 4512
    redirectPort: 1236
  • Tính chất

/src/main/resources/application.properties

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

1
Điều này đã làm việc cho tôi. Trong Spring boot 2.0.3.RELEASE, management.portkhóa được thay thế bằng management.server.port.
biniam

tomcat.jvmroute = 5478 đã giúp tôi chạy hai phiên bản của ứng dụng cùng với server.port = 18181
Ritesh K

2

Tôi sẽ đề nghị giết số cổng. Nó đã làm việc cho tôi

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

2

Trong tệp application.properties của bạn -

/ src / main / resources / application.properties

Thay đổi số cổng thành một cái gì đó như thế này -

server.port = 8181

Hoặc bạn có thể cung cấp số cổng thay thế trong khi thực thi tệp jar của mình - java -jar resource-server / build / libs / resource-server.jar --server.port = 8888


2

bạn có thể định cấu hình một số cổng khác trong IDE /src/main/resources/application.properties của mình

server.port = 8081

nếu không, hãy nhấp chuột phải vào tab bảng điều khiển IDE và chọn Chấm dứt / Ngắt kết nối Tất cả


1

Trong trường hợp của tôi, Dịch vụ Oracle TNS đang sử dụng cổng 8080, nhận thấy rằng đang sử dụng lệnh "netstat - anob" với tư cách quản trị viên. Chỉ cần sử dụng Cơ sở dữ liệu tắt máy từ menu bắt đầu của Windows để dừng dịch vụ đó và có thể khởi động ứng dụng SpringBoot mà không gặp bất kỳ sự cố nào.

Ngoài ra, nếu bạn không thể tìm ra ứng dụng nào đang sử dụng cổng 8080 và chỉ muốn chạy ứng dụng SprintBoot, bạn có thể nhấp vào Run As ... và trong đối số VM nhập: -Dserver.port = 0 (điều này sẽ chọn bất kỳ cổng khả dụng) hoặc bạn có thể cụ thể như: -Dserver.port = 8081

Hy vọng nó giúp.


Tôi đã thử thay đổi -Dserver.port = 0 của mình và thử nghiệm với hai ứng dụng, được khởi chạy cùng một lúc. Bây giờ cả hai mở cổng khác nhau
hnahak

1

Bạn có thể giải quyết vấn đề này theo các bước sau:

  1. Nhấp chuột phải vào dự án bạn đang chạy.
  2. Nhấp vào Run asRun Configurations từ tùy chọn.
  3. Một cấu hình chạy mới sẽ mở ra. Trong tab Khởi động mùa xuân, hãy xem thuộc tính Ghi đè .
  4. Thêm cặp thuộc tính-giá trị dưới dạng server.port=8181hoặc bất kỳ cổng nào khác mà bạn chọn. Điều này sẽ ghi đè cổng mặc định là 8080

1

Đó thực sự là một câu hỏi cũ. Có lẽ điều này là hữu ích. Tập trung vào vấn đề tiêu đề của bạn, đó là cách tôi khởi động các ứng dụng của mình và sau đó tôi có thể dễ dàng tắt chúng. Thay đổi số cổng cho mỗi ứng dụng bạn muốn khởi động như đã đề cập ở trên.

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

thêm phần phụ thuộc này:

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

Bây giờ bạn có thể dễ dàng shotdown bằng cách

curl -X POST localhost:8080/actuator/shutdown

1

Nhấp chuột phải vào bảng điều khiển và nhấp vào tùy chọn Chấm dứt / Ngắt kết nối Tất cả.

HOẶC LÀ

Nhấp vào biểu tượng 'Hiển thị bảng điều khiển đã chọn' ở góc trên cùng bên phải của cửa sổ bảng điều khiển và chọn và kết thúc bảng điều khiển vẫn giữ cổng.


1

Lỗi này về cơ bản xảy ra khi cổng cụ thể không miễn phí. Vì vậy, có hai giải pháp, bạn có thể giải phóng cổng đó bằng cách tắt hoặc đóng dịch vụ đang sử dụng nó hoặc bạn có thể chạy ứng dụng của mình (tomcat) trên một cổng khác.

Giải pháp 1: Giải phóng cổng

Trên máy Linux, bạn có thể tìm thấy id tiến trình của người tiêu dùng cổng và sau đó xóa nó. Sử dụng lệnh sau (giả sử rằng cổng mặc định là 8080)

netstat -pnltu | grep -i "8080"

Đầu ra của lệnh được đề cập ở trên sẽ giống như sau:

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

Sau đó, bạn có thể dễ dàng giết quá trình với processid của nó:

kill 20674

Trên máy tính windows để tìm cách sử dụng đã xử lý netstat -ano -p tcp |find "8080". Để loại bỏ quá trình sử dụng taskkill /F /PID 1234(thay vì 1234, hãy nhập processid được thành lập).

Giải pháp 2: Thay đổi cổng mặc định

Trong quá trình phát triển, các nhà phát triển sử dụng cái port 8080mà bạn có thể thay đổi nó dễ dàng. Bạn cần chỉ định số cổng mong muốn của mình trongapplication.properties tệp dự án của bạn ( /src/main/resources/application.properties) bằng cách sử dụng đặc tả sau:

server.port=8081

Bạn cũng có thể đặt số cổng thay thế trong khi thực thi .jar tệp

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

Xin lưu ý rằng đôi khi (không nhất thiết) bạn phải thay đổi các cổng khác như:

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

1

Điều này là do cổng đã chạy trong nền, vì vậy bạn có thể khởi động lại nhật thực và thử lại. HOẶC mở tệp application.properties và thay đổi giá trị của 'server.port' thành một số giá trị khác như ví dụ: - 8000/8181


0

Đóng ứng dụng, sau đó khởi động lại ứng dụng sau khi đổi sang cổng mới:

${port:8181}

Bạn có thể sử dụng bất kỳ cổng mới chưa sử dụng nào. Ở đây, tôi đã sử dụng cổng 8181.


@Bruce Làm thế nào mà điều này không cố gắng cung cấp câu trả lời? Tôi thấy một nỗ lực rõ ràng: đóng ứng dụng; thay đổi cổng; và khởi động lại nó. Nó có thể hoàn toàn sai, nhưng điều đó không có nghĩa là nó không phải là một nỗ lực để trả lời.
Hoàn tác

0

Tôi đã giải quyết sự cố này bằng cách dừng ứng dụng (hình vuông màu đỏ trong Eclipse) trước khi chạy lại. Nếu bạn không dừng nó, ứng dụng vẫn ở chế độ chạy, vì vậy cổng vẫn được sử dụng.


0

Bạn có một quy trình khác đang lắng nghe trên cổng 8080, cổng mặc định được hỗ trợ web của Spring Boot sử dụng. Bạn cần dừng quá trình đó hoặc định cấu hình ứng dụng của mình để nghe trên một cổng khác.

Bạn có thể thay đổi cấu hình cổng bằng cách thêm server.port = 4040 (ví dụ) vào src / main / resources / application.properties


0

Về cơ bản máy chủ mặc định thường chạy trên nền ở cổng 8080. Mở services.msc và dừng máy chủ tomcat và thử chạy lại ứng dụng khởi động mùa xuân.


0

Trong Eclipse, nếu Spring Tool Suite được cài đặt, bạn có thể truy cập Bảng điều khiển khởi động và mở rộng cục bộ trong trình khám phá và nhấp chuột phải vào ứng dụng đang chạy trên cổng 8080 và dừng ứng dụng đó trước khi bạn chạy lại ứng dụng của mình.


0

Tôi cố gắng thay đổi số cổng trong tệp sau - /src/main/resources/application-prod.yml

Và bên trong tệp này, tôi đã thực hiện thay đổi này:

máy chủ: cổng: 8100 (hoặc bất cứ thứ gì bạn muốn)

Tôi hy vọng rằng điều này sẽ làm việc tốt cho bạn


0

Tôi đã tìm kiếm giải pháp cho Windows nhưng không tìm thấy giải pháp nào. Cuối cùng, phát hiện ra rằng có một ứng dụng java đang sử dụng cổng. Có thể đó là trường hợp trước đó của ứng dụng mùa xuân và đã kết thúc quá trình.

Tôi đã sử dụng tcpview từ Microsoft . Nó hiển thị các dịch vụ / ứng dụng sử dụng cổng nào trên máy tính của bạn.

nhập mô tả hình ảnh ở đây

Bạn có thể kết thúc quá trình. Và thực hiện!


-1

Tôi đã gặp vấn đề tương tự, tức là bắt đầu trình xử lý giao thức không thành công . Nguyên nhân là cổng đã được sử dụng . Tôi đã tìm thấy liệu cổng đã được sử dụng hay chưa. Nó đã được. Vì vậy, tôi đã giết quá trình đang chạy trên cổng đó và khởi động lại ứng dụng khởi động mùa xuân của mình. Va no đa hoạt động. :)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.