gpt4 book ai didi

java - 使用 spring mvc 集成测试时 Spring security taglib 不可见

转载 作者:行者123 更新时间:2023-12-01 13:38:06 24 4
gpt4 key购买 nike

我尝试使用 MockMvc 类进行一些“集成”测试

我使用:

this.mockMvc.perform(
get("/admin"))
.andExpect(status().isOk())
.andDo(print());

但是负责生成页面的freemarker正在使用安全标签库

 <#assign security=JspTaglibs["http://www.springframework.org/security/tags"] />

maven 依赖:

  <dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>3.2.0.RELEASE</version>
</dependency>

测试时似乎不可用..异常:

The following has evaluated to null or missing:
==> security [in template "lib/abc.ftl" at line 170, column 19]

应用程序本身正在工作,但我必须使用 mvn tomcat:run-war 而不是 mvn tomcat:run 来获取 taglib。

最佳答案

我必须复制

~/.m2/repository/org/springframework/security/spring-security-taglibs/3.2.0.RELEASE/spring-security-taglibs-3.2.0.RELEASE.jar 

到我的 WEB-INF/lib 文件夹。然后我遇到了关于 Missiong 'Tag' 类的另一个问题,所以我必须添加

 <dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
</dependency>

复制粘贴该 jar 文件似乎是肮脏的解决方法。请让我知道是否有更好的解决方案。

编辑

有一种方法可以使用 mvn tomcat7:run 而不是 run-war 来运行它,这样就可以加载标签库并刷新模板文件,而无需重新启动服务器。只需添加

<jarScanAllDirectoriescontextReloadable>true</jarScanAllDirectoriescontextReloadable>
<contextReloadable>true</contextReloadable>

到 pom.xml 中的 tomcat7-maven-plugin

关于java - 使用 spring mvc 集成测试时 Spring security taglib 不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21088880/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com