Springboot应用程序中的javax.servlet

tug*_*ger 5 java servlets maven spring-boot

我有一个SpringBoot应用程序。一个类需要导入javax.servlet.filter并实现用于自定义的过滤器。它在本地成功构建,但无法在云服务器上启动,并引发llegalStateExceptions。这是导致问题的过滤器类。删除过滤器后,该应用将在本地和云上成功运行。

我认为应用程序可能无法在Maven中找到javax.servlet api,或者这是servlet /嵌入式tomcat不兼容的问题。我们拥有org.springframework.boot中的大多数依赖项。我们唯一与tomcat相关的部分是:

<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-jdbc</artifactId>
    <version>LATEST</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我们没有以下内容:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我尝试添加它们(分别和同时添加),并将作用域更改为编译或删除作用域。各种依赖项都有细微的变化,但到目前为止没有任何效果。如果您有什么好的建议,请告诉我。

小智 1

我在 SpringBoot 应用程序中使用 Gradle 时遇到了这样的问题,最后我发现问题是 javax.servlet-api 丢失了,根本原因是它的范围不正确,当它的范围是 时,providedIDEA 将无法构建完整,所以servlet-api Jar 文件不包含在构建文件中。将范围从 更改为 后providedruntime它修复了。可以参考这篇博客http://blog.csdn.net/u013360850/article/details/71520210