部署在Tomcat8上的Spring Boot MVC应用程序war文件因java.lang.TypeNotPresentException而失败

PPr*_*sai 1 spring-mvc maven tomcat8 spring-boot

我用Spring Boot编写了一个REST API,并将其打包为WAR文件.我将WAR复制到Tomcat 8的webapps文件夹并启动了tomcat服务.当服务器启动时,它会抛出一些由以下原因引起的异常:

java.lang.TypeNotPresentException:输入org.springframework.test.context.ContextConfiguration不存在

我解决了这个问题并发现如果我将webapp的lib和lib提供的文件夹上的JAR文件移动到Tomcat8/lib文件夹,则不会抛出任何异常并且API按预期工作.我不知道是什么导致了这个问题.我对他pom.xml的范围有一些依赖关系provided.也许他们给我带来了问题.

这是我的pom:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.3.RELEASE</version>
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>com.pp</groupId>
        <artifactId>DAO-Commons</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.pp</groupId>
        <artifactId>carddao</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.pp</groupId>
        <artifactId>cardtemplatedao</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.pp</groupId>
        <artifactId>cardlibrarydao</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

小智 5

看看maven docs - 依赖机制

尝试删除提供的范围!它们将在您的战争中在WEB-INF/lib目录中提供.