同时使用 Spring Data Hadoop + Spring MVC 时出错

Errors while using both Spring Data Hadoop + Spring MVC

我刚开始使用 Spring 和 Hadoop。 我有以下 build.gradle 效果很好:

dependencies {
    compile 'org.springframework:spring-webmvc:4.0.6.RELEASE'
    compile 'jstl:jstl:1.2'
    providedCompile 'javax.servlet:servlet-api:2.5'
}

但是,当添加

compile 'org.springframework.data:spring-data-hadoop:2.1.2.RELEASE'

对于依赖项,我的应用程序无法再显示 JSP... 我收到错误消息:

javax.servlet.ServletException: java.lang.AbstractMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext;
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:273)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:209)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:267)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1221)
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1005)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:952)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

我正在使用 Tomcat 7.0.61,以及 Eclipse Juno(版本 4.2.0).

经过一些研究,我发现我应该添加依赖项排除项,但是添加哪些项呢?因为我只有两个依赖项(sping mvc 和 spring data hadoop)但是我不能排除它们中的任何一个。

我也是 Gradle 的新手。
感谢您的帮助。

我遇到了 Tomcat 的依赖问题。 我在 build.gradle 文件之上添加了:

configurations {
    all*.exclude group: 'tomcat', module: 'jasper-runtime'
}

这解决了问题。