1

我正在尝试运行需要与 hdfs 对话的 Spring Boot 嵌入式 Web 容器应用程序。我在 pom.xml 中包含了 spring data hadoop,但是当我在集群上运行应用程序时出现此错误

原因:java.io.FileNotFoundException: JAR entry lib/hadoop-core-1.2.1.jar!/core-default.xml not found in hdfspub-0.0.1-SNAPSHOT.jar at .jar.JarURLConnec...ction .java:122) 在 JarURLConnec...ction.java:132) 在 com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:65 1) 在 com.sun.org。 com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:772) 在 com.sun 的 apache.xerces.internal.impl.XMLVersion Detector.determineDocVersion(XMLVersionDetector.ja va:186) .org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) at com.sun.org.apache.xerces.internal.parsers.XMLPars er.parse(XMLParser.java:119) at com .sun.org.apache.xerces.internal.parsers.DOMPars er.parse(DOMParser.java:232) 位于 com.sun.org.apache.xerces.internal.jaxp。DocumentBu ilderImpl.parse(DocumentBuilderImpl.java:284) at javax.xml.parsers.DocumentBuilder.parse(DocumentBu ilder.java:180) at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:1156)

即使我看着我的罐子,我也能看到 hadoop-core-1.2.1.jar 在那里

$ unzip -l hdfspub-0.0.1-SNAPSHOT.jar | grep hadoop-core-1.2.1.jar 4203713 10-25-2013 21:04 lib/hadoop-core-1.2.1.jar

任何帮助,将不胜感激

4

1 回答 1

0

我有同样的问题,解决方案是将 hadoop.core 添加到您的 pom/build.gradle 但您必须从 spring.data.hadoop 和 apache.hadoop 组中排除:

  • 雄猫
  • org.mortbay.jetty
  • javax.servlet

我的 build.gradle:

   compile('org.apache.hadoop:hadoop-core:1.2.1'){
       exclude group: 'org.mortbay.jetty'
       exclude group: 'javax.servlet'
       exclude group: 'tomcat'       
   }
   compile('org.springframework.data:spring-data-hadoop:1.0.2.RELEASE') {
       exclude group: 'org.mortbay.jetty'
       exclude group: 'javax.servlet'
       exclude group: 'tomcat'
   }
于 2014-01-14T09:22:41.443 回答