当前位置: 首页 > 知识库问答 >
问题:

hadoop jaxb类路径问题

东郭阳德
2023-03-14

我在hadoop作业中看到了这一点:

2014-08-21 09:26:57,216 ERROR org.apache.hadoop.mapred.Child: Error running child : java.lang.ExceptionInInitializerError
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:107)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
    at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:129)
    at com.sun.proxy.$Proxy61.describeVehicle(Unknown Source)
    at com.company.inventory.externalapi.externalsoapclient.ExternalClientImpl.getFromSoap(ExternalClientImpl.java:46)
    at com.company.dataservices.external.hadoop.ExternalIngestionProcess.populateExternalCache(ExternalIngestionProcess.java:112)
    at com.company.dataservices.external.hadoop.ExternalIngestionProcess.map(ExternalIngestionProcess.java:93)
    at com.company.dataservices.external.hadoop.ExternalIngestionProcess.map(ExternalIngestionProcess.java:38)
    at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:140)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:672)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:330)
    at org.apache.hadoop.mapred.Child$4.run(Child.java:268)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1438)
    at org.apache.hadoop.mapred.Child.main(Child.java:262)
Caused by: java.lang.ClassCastException: com.sun.xml.bind.v2.runtime.JAXBContextImpl cannot be cast to com.sun.xml.internal.bind.api.JAXBRIContext
    at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.<clinit>(SOAPFaultBuilder.java:550)
    ... 16 more

这个问题看起来与这个问题类似,只是我没有在我的类路径上提供任何jax-b依赖项。然而,它看起来确实像hadoop。

有没有办法强迫hadoop使用jdk jaxb JAR,或者只使用它自己提供的jaxb JAR,而不是两者混合使用?

共有1个答案

洪宏硕
2023-03-14

坦率地说,这听起来不像Hadoop bug。正如你已经提到的,正确的解决方案是修复类路径,但是试试这个:

-djavax.xml.bind.JAXBContext=com.sun.xml.internal.bind.v2。内容工厂

附加细节

 类似资料:
  • 问题内容: 我有两节课: MyApplication 库 该库已被编译为Library.class,并且源代码不再可用。我现在正在尝试从源代码编译MyApplication。MyApplication取决于库。该库的软件包名称为org.myCompany。我尝试将我的类路径设置为以下内容: 产生以下javac编译器错误消息: 所以我将类路径更改为: 产生完全相同的错误消息。 如何设置Windows

  • 问题内容: 我一直在尝试运行一个jar文件-我们称它为test.jar-在Unix系统上使用Sybase jconn3.jar。 我创建了一个具有以下内容的MANIFEST.MF文件: 这给出了ClassNotFoundError。$ SYBASE是指向/ opt / sybase13的系统变量;我还尝试了以下方法: 和 但是,如果我将jconn3.jar文件从$ SYBASE / jConnec

  • 问题内容: 我有一个Spring Boot应用程序,当我在本地使用“ mvn clean install”进行部署时,它运行良好,但是当通过Jenkin产生战争时,它会引发以下错误。 我只是尝试使用超越比较来比较2个war文件,而且除了用于编译的JDK次要版本外,我看不到任何差异。 我试图在我的本地版本和jenkin版本中搜索SerializationConfig.class, 以下命令的输出是:

  • 这个问题并不是指在整个集群中分发jar供工作人员使用。 它指的是在客户端机器上指定一些额外的库。更具体地说:我试图运行以下命令来检索序列文件的内容: 它抛给我这个错误: 我有一个名为DoubleArrayWritable的可写类。事实上,在另一台计算机上,一切都运行良好。 我试图设置以包含包含该类的jar,但没有结果。实际上,跑步时: 结果不包含我添加到HADOOP_类路径中的jar。 问题是:如

  • 我在设置Java开发环境时遇到了一个问题。在过去,我安装了Java,然后安装了IDE,然后开始编写代码。我现在开始设置我的笔记本电脑,使用命令行编译和记事本作为我的代码编辑器。这是我第一次尝试纠正错误。 我运行javac,它创建了我的。类文件没有问题,但是我尝试用java A运行类文件,它抛出了一个错误: c:\工作区 我的类路径设置为C:\Program Files\Java\jdk-14.0.

  • 我是一名新的程序员,正在学习Java入门课程。我的操作系统是Windows 10。大约4-5个月前,我们最初设置了类路径,从命令行运行了我们的“Hello World”程序,然后再也没有使用过它。 现在我们正在做一个输入/输出重定向到文件的练习,我必须忘记我的类路径是什么,所以我试图重新设置它。 我已经使用以下命令设置了我的类路径: 然后我尝试运行我的程序,它位于目录C:\Users\grant\