Spring 启动应用程序未启动嵌入式 tomcat

Spring boot application not starting embedded tomcat

我是 Spring 启动应用程序的新手。我有一个任务是创建应该由 rest 控制器处理的公共 crud 存储库。我只是从一些例子开始。但是我的应用程序没有启动嵌入式tomcat。我的其余控制器 URI 也没有映射。这是 maven 模块项目,所有依赖项都在 parent maven 中配置。如何解决这个问题。

这是我的代码

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
 public class CRUDEngineApplication {

 public static void main(String[] args) {
     SpringApplication.run(CRUDEngineApplication.class, args);
 }
}

控制器是

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;

import com.scm.services.CRUDEngineService;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@RestController("/api")
public class CRUDEngineController {
@Autowired
private CRUDEngineService crudEngineService;

public static final Logger logger = 
LoggerFactory.getLogger(CRUDEngineController.class);


/* public void setProductService(CRUDEngineService crudEngineService) {
    this.crudEngineService = crudEngineService;
}*/
@RequestMapping(value = "/user", method = RequestMethod.POST)
public ResponseEntity<?> createUser(@RequestBody Object entity) {
    System.out.println("Check point entered.");
    crudEngineService.save(entity);
    return new ResponseEntity<String>( HttpStatus.CREATED);
}
}

服务接口为

import java.util.UUID;

public interface CRUDEngineService {

void save(Object entity);

void delete(UUID id);
}

服务实现class是

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.scm.repositories.CRUDEngineRespository;
import java.util.UUID;

@Service
public class CRUDEngineServiceImpl implements CRUDEngineService {

@Autowired
private CRUDEngineRespository productRepository;

@Override
public void save(Object entity) {
    productRepository.save(entity);
}

@Override
public void delete(UUID id) {
    productRepository.delete(id);
}
}

并且 crud 存储库实现是

import java.util.UUID;
import org.springframework.data.repository.CrudRepository;

public interface CRUDEngineRespository extends CrudRepository<Object, UUID> 
{

}

Child pom.xml 是

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd" 
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.scm</groupId>
<artifactId>scm-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>crudEngineService</artifactId>
<packaging>war</packaging>
<name>crudEngineService</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <scope>test</scope>
</dependency>
</dependencies>
</project>

Parent pom 是

<?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>com.scm</groupId>
<artifactId>scm-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>

<name>scm-parent</name>
<description>scm 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>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

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

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-cassandra</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-rest</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>5.4.1.Final</version>
    </dependency>
</dependencies>

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


<modules>
    <module>userService</module>
    <module>authenticationService</module>
    <module>dataLayerService</module>
    <module>uiService</module>
    <module>crudEngineService</module>
</modules>

控制台结果是

2017-10-07 13:03:32.348  INFO 6508 --- [           main] 
c.s.configuration.CRUDEngineApplication  : Starting CRUDEngineApplication on 
STS-STP-A808 with PID 6508 (started by muthuvignesh.k in E:\Septa_Bench\STS 
Septa Repo\ppts_scm\scm-parent\crudEngineService)
2017-10-07 13:03:32.350  INFO 6508 --- [           main] 
c.s.configuration.CRUDEngineApplication  : No active profile set, falling 
back to default profiles: default
2017-10-07 13:03:32.378  INFO 6508 --- [           main] 
s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@4df828
d7: startup date [Sat Oct 07 13:03:32 IST 2017]; root of context hierarchy
2017-10-07 13:03:32.766  WARN 6508 --- [           main] 
o.h.v.m.ParameterMessageInterpolator     : HV000184: 
ParameterMessageInterpolator has been chosen, EL interpolation will not be supported
2017-10-07 13:03:32.872  WARN 6508 --- [           main] o.h.v.m.ParameterMessageInterpolator     : HV000184: ParameterMessageInterpolator has been chosen, EL interpolation will not be supported
2017-10-07 13:03:33.052  INFO 6508 --- [           main] com.datastax.driver.core.Native          : Could not load JNR C Library, native system calls through this library will not be available (set this logger level to DEBUG to see the full stack trace).
2017-10-07 13:03:33.052  INFO 6508 --- [           main] com.datastax.driver.core.ClockFactory    : Using java.lang.System clock to generate timestamps.
2017-10-07 13:03:33.197  INFO 6508 --- [           main] com.datastax.driver.core.NettyUtil       : Did not find Netty's native epoll transport in the classpath, defaulting to NIO.
2017-10-07 13:03:33.541  INFO 6508 --- [           main] c.d.d.c.p.DCAwareRoundRobinPolicy        : Using data-center name 'datacenter1' for DCAwareRoundRobinPolicy (if this is incorrect, please provide the correct datacenter name with DCAwareRoundRobinPolicy constructor)
2017-10-07 13:03:33.543  INFO 6508 --- [           main] com.datastax.driver.core.Cluster         : New Cassandra host /10.10.30.125:9042 added
2017-10-07 13:03:33.795  INFO 6508 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2017-10-07 13:03:33.804  INFO 6508 --- [           main] c.s.configuration.CRUDEngineApplication  : Started CRUDEngineApplication in 1.619 seconds (JVM running for 2.002)

从 pom.xml 中删除 <scope>provided</scope>,然后尝试重新 运行。如果您希望将 war 部署到任何其他独立 tomcat.

,请使用 provided

参考: Spring Boot Embedded Tomcat

尝试依赖管理:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>