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 文件不包含在构建文件中。将范围从 更改为 后provided,runtime它修复了。可以参考这篇博客http://blog.csdn.net/u013360850/article/details/71520210