【问题标题】:cannot find symbol symbol: (maven and POM)找不到符号符号:(maven 和 POM)
【发布时间】:2014-09-05 16:05:51
【问题描述】:

我终于为 maven 编译修复了我的 POM 中几乎所有的错误,但仍然存在一个错误的依赖项(?) 在我的 servlet 类中有 5 个错误 typeof

cannot find symbol
  symbol:   method getDispatcherType()
  location: variable request of type javax.servlet.http.HttpServletRequest
cannot find symbol
  symbol:   variable FORWARD
cannot find symbol
  symbol:   variable REQUEST

我已经在POM中添加了

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

和 (http://mvnrepository.com/artifact/javax.servlet.jsp.jstl/javax.servlet.jsp.jstl-api/1.2.1)

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

因为 getDispatcherType 来自包 javax.servlet; 但它仍然找不到这个方法,也许有人可以告诉我这个 POM 描述有什么问题?

PS : org.glassfish.web:javax.servlet.jsp.jstl:1.2.1 也存在

【问题讨论】:

  • 尝试添加jstl-impl依赖。

标签: java maven


【解决方案1】:

你对 jstl 有错误的依赖。您应该使用:

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>jstl</artifactId>
  <version>1.2</version>
</dependency>

你的jsp依赖是正确的。

【讨论】:

  • 我刚刚试过了——但是错误是一样的((无论如何谢谢你的回答
【解决方案2】:

终于在对那段代码进行了一个小时的研究之后,我终于找到了造成这种麻烦的确切原因——tomcat-servlet-api 的依赖项必须在部分中排在第一位。 顺便说一下,我用的是7.0.50版本。

【讨论】:

  • 不,这不是问题。你误会了。如果这可行,那么您在类路径上存在同一类的多个版本的问题。使用 mvn 依赖树并查找具有相似名称和不同版本或组 ID 的库。
【解决方案3】:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
</dependency>

如果您愿意,请更新版本

【讨论】:

  • 不是说要改版吗?
猜你喜欢
  • 2014-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-19
  • 1970-01-01
  • 2015-07-21
  • 2014-04-11
  • 2011-09-25
相关资源
最近更新 更多