我认为您的问题是hadoop包含了servlet API的一个版本,该版本在类路径中的“正确” servlet
API之前。Hadoop依赖Jetty,Jetty会依次尝试包含servlet API。
我有一个具有非常相似设置的项目,即Spring
MVC和Hadoop。我对hadoop依赖项有以下排除。请注意,这可能会因您的hadoop分布而略有不同,我使用的是cloudera。由于您正在使用的servlet容器通常会附带其自己的javax.servlet依赖项,因此您的排除方法需要抓住这种情况。我只用Jetty测试了以下配置:
<dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-core</artifactId> <version>${hadoop.version}</version><exclusions> <exclusion> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty</artifactId> </exclusion> <exclusion> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-util</artifactId> </exclusion> <exclusion> <groupId>org.mortbay.jetty</groupId> <artifactId>jsp-2.1</artifactId> </exclusion> <exclusion> <groupId>org.mortbay.jetty</groupId> <artifactId>jsp-api-2.1</artifactId> </exclusion> <exclusion> <groupId>org.mortbay.jetty</groupId> <artifactId>servlet-api-2.1</artifactId> </exclusion> <exclusion> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> </exclusion> <exclusion> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> </exclusion> <exclusion> <groupId>tomcat</groupId> <artifactId>jasper-compiler</artifactId> </exclusion> <exclusion> <groupId>tomcat</groupId> <artifactId>jasper-runtime</artifactId> </exclusion> <!-- other exclusions snipped for brevity -->
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)