2017-09-19 116 views
0

我正在使用inbuild tomcat服務器構建一個非常基本的spring-boot服務。春季啓動內置tomcat服務器不啓動

雙響炮看起來是這樣的:

<groupId>com.example</groupId> 
<artifactId>demo</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>jar</packaging> 
<name>demo</name> 
<description>Demo project for Spring Boot</description> 
<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.5.7.RELEASE</version> 
    <relativePath/> <!-- lookup parent from repository --> 
</parent> 
<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <project.reporting.outputEncoding>UTF8</project.reporting.outputEncoding> 
    <java.version>1.8</java.version> 
</properties> 

<dependencies> 
    <!--<dependency> 
     <groupId>org.flywaydb</groupId> 
     <artifactId>flyway-core</artifactId> 
    </dependency>--> 
    <!--<dependency>--> 
     <!--<groupId>org.springframework.boot</groupId>--> 
     <!--<artifactId>spring-boot-starter-jdbc</artifactId>--> 
    <!--</dependency>--> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-validation</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>org.projectlombok</groupId> 
     <artifactId>lombok</artifactId> 
     <optional>true</optional> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.restdocs</groupId> 
     <artifactId>spring-restdocs-mockmvc</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <!--<plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin>--> 


      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.3</version> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 
    </plugins> 
</build> 

我在application.properties文件server.port=8089設置端口。有一個平URI在控制器類添加爲:

@RequestMapping("/ping") 
@RestController 
public class helloController { 

    @RequestMapping(method= RequestMethod.GET,produces = {MediaType.APPLICATION_JSON_VALUE}) 
    public ResponseEntity<String> ping(){ 
     return new ResponseEntity<>("Hello World Spring-boot app", HttpStatus.OK); 
    } 

當我做了mvn clean package一切正常,並構建是成功的。但是,當我從Main()運行應用程序,這是什麼日誌的樣子:

2017-09-19 10:37:32.219 INFO 6436 --- [   main] com.example.demo.DemoApplication   : No active profile set, falling back to default profiles: default 
2017-09-19 10:37:32.290 INFO 6436 --- [   main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.spring[email protected]77f99a05: startup date [Tue Sep 19 10:37:32 PDT 2017]; root of context hierarchy 
2017-09-19 10:37:33.782 INFO 6436 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Registering beans for JMX exposure on startup 
2017-09-19 10:37:33.802 INFO 6436 --- [   main] com.example.demo.DemoApplication   : Started DemoApplication in 2.043 seconds (JVM running for 2.802) 
2017-09-19 10:37:33.802 INFO 6436 --- [  Thread-2] s.c.a.AnnotationConfigApplicationContext : Closing org.springfra[email protected]99a05: startup date [Tue Sep 19 10:37:32 PDT 2017]; root of context hierarchy 
2017-09-19 10:37:33.802 INFO 6436 --- [  Thread-2] o.s.j.e.a.AnnotationMBeanExporter  : Unregistering JMX-exposed beans on shutdown 

日誌沒有顯示什麼端口的服務正在啓動。

還有什麼要做,以啓動指定端口上的服務,並保持服務器運行?

+2

對於初學者,刪除'spring-web'依賴項。刪除編譯器插件並重新添加'spring-boot-maven-plugin'。另外你如何運行'main'方法?命令行? IDE?或者?... –

+0

告訴你什麼,儘管它沒有真正相關,但我會盡快從代碼中刪除lombok。這是一個殘酷的想法。 –

+0

@ M.Deinum - 根據你的建議重新添加了spring-boot-maven -plugin,這次通過** spring-boot:start **選項啓動服務器。現在在日誌中,我看到應用程序從端口8089開始,但服務器再次停止。 – worrynerd

回答

0

解決了這個問題。使用spring-boot啓動內置的tomcat服務器:運行選項