我已经对此进行了几次测试,以确认我没有疯。如果我包括针对Hadoop的Maven依赖...
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.7.1</version>
</dependency>
...一个特定的JSP停止编译。据我所知,JSP不使用Hadoop软件包中的任何内容。错误是:
An error occurred at line: [97] in the generated java file: [/Users/gwg/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/work/Catalina/localhost/Harmonizome/org/apache/jsp/template/dataset_jsp.java]
The method getDispatcherType() is undefined for the type HttpServletRequest
Stacktrace:
at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102)
at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:198)
at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:450)
关于这两个事件如何关联的任何理论?
编辑
任何建议,甚至是在黑暗中拍摄,都应受到赞赏。我绝对可以复制。我已经完全清空了JSP和servlet。如果我运行,则会发生错误
request.getRequestDispatcher(Constant.TEMPLATE_DIR + "dataset.jsp").forward(request, response);
即使我完全清空了“dataset.jsp”。
最佳答案
原因是Hadoop不支持servlet-api
3.0:
https://issues.apache.org/jira/browse/HADOOP-9244
关于java - 为什么对Hadoop的这种Maven依赖性阻止JSP进行编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32080721/