我知道有很多像这样的类似问题,但我似乎无法找到Spring Boot 2的答案 . 我收到此错误:
Caused by: org.apache.jasper.JasperException: The absolute uri: [http://www.springframework.org/security/tags]
cannot be resolved in either web.xml or the jar files deployed with this application
所以我查看了/ work目录并找到了jsp的java,并找到了这一行:
_jspx_dependants.put("/WEB-INF/lib/spring-security-taglibs-3.2.0.RELEASE.jar", Long.valueOf(1524843694000L));
现在我的pom在spring-security-taglibs-5.0.6.RELEASE.jar中有它,它位于/ lib目录中 .
我也在使用apache tiles 3.0.5 . 不知道那是不是真的 .
这是我的pom条目:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-messaging</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-websocket</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp/jsp-api -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!-- Tiles -->
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-jsp</artifactId>
<version>${apache.tiles.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-core</artifactId>
<version>${apache.tiles.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-api</artifactId>
<version>${apache.tiles.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-servlet</artifactId>
<version>${apache.tiles.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-template</artifactId>
<version>${apache.tiles.version}</version>
</dependency>
有关该版本如何进入jsp的java的任何想法?
UPDATE 我不再认为这是Spring Boot 2问题 . 我恢复启动1.5.15并且我得到了同样的错误 . 我甚至还回到了一个简单的 spring 项目(4.3.18.RELEASE和spring-security 4.2.7.RELEASE),我得到了同样的错误 . 但是,如果我一直恢复到spring security 3.2.0,它就可以工作了 .
我必须在某处发生依赖冲突,或旧的安全版本包含4.x不依赖的依赖项 .
我还发现也找不到常规 spring 标签 . IE:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%>
抛出一个关于没有找到http://www.springframework.org/tags的错误,如果我切换"spring"和"sec"的顺序,我得到的错误是哪个标签lib是第一个 . 但是 - 我没有收到http://java.sun.com/jsp/jstl/core的错误,因此它不是一般的"loading taglib"错误 .