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