【发布时间】:2017-01-20 04:25:15
【问题描述】:
我正在尝试重新部署一个落入我手中的项目。这是一个 maven 项目,它使用的依赖项包括 javax.servlet-api:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>2.5</version>
</dependency>
对此,我在 jsp-s 中遇到错误,包括以下内容。
HttpServletRequest 类型的方法 getIsUserInRole() 未定义。
和
在这一行找到多个注释: - 未定义的属性名称 (ID)。 - 未知标签(画布)。 - 未定义的属性名称 (风格)。
为此,我将 servlet 版本更改为 3.0.1:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
</dependency>
但是,我仍然有同样的错误。构建路径上的 jstl 版本(相关)是 1.2。
如何解决这个问题?
为什么我要显式定义任何类型的 servlet-api,servlet 容器没有它吗? 如果是,如何告诉 JBoss 使用 servlet 版本 3.0.1?
我在 Eclipse Neon 上运行 JBoss 7.1。我在 Eclipse Mars 上尝试并得到了同样的结果。
TIA。
//-------------------------------
编辑:
getIsUserInRole() 是 Eclipse 问题报告中出现的名称。这是一张快照:
代码中方法名拼写正确:
<c:if test="${not empty pageContext.request.userPrincipal}">
<c:if test="${pageContext.request.isUserInRole('ROLE_ADMIN')}">
<button class="custombutton" id="admin" style="font-size: 150%; height:80px; width: 100%">Administration [Admin. Profile]</button>
</c:if>
</c:if>
此外,Eclipse 正在报告所有画布项的警告——标签、属性名称等无法识别它们:
//-----------------
EDIT2:
这个项目中有 Spring 3.2.8。它可以以某种方式拦截 servlet 定义吗?但是,pom.xml 依赖层次结构没有显示它。
另外,我没有更改项目中的任何 Spring 依赖项,它们与现在部署和运行的依赖项相同。
这看起来像是一个构建问题,但我看不到它。以前的版本部署在 IntelliJ 上。
【问题讨论】:
标签: eclipse maven jsp servlets