Jakarta ee Hadoop Jersey与Wildfly resteasy冲突

Jakarta ee Hadoop Jersey与Wildfly resteasy冲突,jakarta-ee,hadoop,jersey,resteasy,wildfly,Jakarta Ee,Hadoop,Jersey,Resteasy,Wildfly,在J2EE项目中,我们使用Wildfly来部署项目。我们在外部服务器上运行hadoop。我们要连接此服务器并读取HDFS数据。但问题是,我们使用的任何hadoop库(hadoop common、hadoop hdfs、hadoop client)都需要Jersey,但wildfly使用Resteasy。由于这种冲突,Wildfly无法成功部署 我的问题是, 是否有任何hadoop库,它不依赖于Jersey,我们可以用于此操作,或者 我们是否需要用球衣取代《野飞上的Resteasy》。如果这是解决

在J2EE项目中,我们使用Wildfly来部署项目。我们在外部服务器上运行hadoop。我们要连接此服务器并读取HDFS数据。但问题是,我们使用的任何hadoop库(hadoop common、hadoop hdfs、hadoop client)都需要Jersey,但wildfly使用Resteasy。由于这种冲突,Wildfly无法成功部署

我的问题是,

是否有任何hadoop库,它不依赖于Jersey,我们可以用于此操作,或者

我们是否需要用球衣取代《野飞上的Resteasy》。如果这是解决方案,我们如何才能做到这一点。我们找不到此解决方案的源


谢谢您的帮助。

好的,我在WildFly 9.0.1中获得了2.7.1版中的基本Hadoop HDFS内容。有关详细信息,请访问我的博客:

基本步骤是:

  • 关闭隐式bean归档支持,如果包含CDIBean,则强制所有JAR文件包含META-INF/beans.xml。一些Hadoop客户端依赖项包含@Inject,这使得WildFly在部署期间失败
  • 为jersey server和jersey json添加其他依赖项,使项目进入可编译状态。Hadoop客户端依赖项不是自包含的。因此,需要额外的依赖项来添加一些缺少的类
  • 排除hadoop mapreduce客户端应用程序和hadoop mapreduce客户端jobclient,因为它们试图提供由于WildFly中缺少依赖项而无法启动的服务。不知道它们是干什么用的,为什么包装在那里
  • 如果您依赖Jackson 2,则需要将整个Hadoop客户端打包到自己的EAR中,因为Hadoop客户端通过打包的提供程序强制执行Jackson 1。EAR需要提供一个具有良好定义接口的代理,如REST服务或具有远程接口的EJB

你的意思是说不要使用Jetty?是的,很抱歉输入错误,我现在就编辑这个问题。似乎排除了Jersey依赖项。您确定依赖项来自何处吗?我们使用hadoop 2.6.0版本,是的,我确定。您是否尝试排除Jersey deps?如果hadoop客户端正在通过javax.ws.rsAPI访问Jersey实现,那么它可能会正常工作。谢谢您的回复。我现在不能回到这一点上,但我希望这能帮助其他人。不客气。最后,它与您的解决方案没有多大区别。您需要将Hadoop客户端与JavaEE部分隔离开来。你是用JavaSE应用程序做的,我是用另一个EAR做的。希望他们将来能把这个包装清理干净。