Java 玻璃鱼球衣&x2B;apachespark导致异常
这是我的设想。我有一个客户端jar,它使用glassfish jersey 2.17版jar。现在,我正在更改一个应用程序,以使用这个将部署在Spark集群中的客户机jar。spark使用Java 玻璃鱼球衣&x2B;apachespark导致异常,java,apache-spark,linker,glassfish,Java,Apache Spark,Linker,Glassfish,这是我的设想。我有一个客户端jar,它使用glassfish jersey 2.17版jar。现在,我正在更改一个应用程序,以使用这个将部署在Spark集群中的客户机jar。spark使用com.sun.jersey1.9版jar 在客户端jar中,当发出jersey请求时,它引用javax.ws.rs.core.MultivaluedMap来自javax.ws.rs-api-2.0.1.jar中的ClientRequest.accept方法。不幸的是,这个具有相同包名的类也出现在jersey-
com.sun.jersey
1.9版jar
在客户端jar中,当发出jersey请求时,它引用javax.ws.rs.core.MultivaluedMap
来自javax.ws.rs-api-2.0.1.jar
中的ClientRequest.accept
方法。不幸的是,这个具有相同包名的类也出现在jersey-core-1.9.jar
中,它由我的apachespark使用的com.sun.jersey
引用。现在javax.ws.rs-api-2.0.1.jar
版本包含一个名为addAll(…)
的方法,该方法在jersey-core-1.9.jar
版本中不存在。当我尝试在spark集群中运行应用程序时,这会导致运行时异常
我试图在客户端jar中将javax.ws.rs-api-2.0.1.jar
显式引用为依赖项,以便在客户端jar中正确设置链接,但仍然没有用。它从jersey-core-1.9.jar
链接回javax.ws.rs.core.MultivaluedMap
,这会导致MethodNotFound
运行时异常。有什么建议可以解决这个问题吗
我是否必须让我的客户使用com.sun.jersey
?在本例中,我很少有其他项目使用glassfish jersey。所以我怀疑这会出错
编辑:
我的应用程序pom具有这种依赖性
<dependency>
<groupId>org.apache.phoenix</groupId>
<artifactId>phoenix-spark</artifactId>
<version>4.6.0-HBase</version>
<scope>provided</scope>
</dependency>
org.apache.phoenix
凤凰星火
4.6.0-HBase
假如
我试图在spark应用程序中使用的客户端jar具有这种依赖性
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.17</version>
</dependency>
org.glassfish.jersey.core
泽西岛客户
2.17
因此,我需要一个适当的方法来解决这个问题。请提供您的建议。我想您是糊涂了。不需要球衣。也许你指的是Sparkjava,web框架?我的应用程序使用phoenix spark jar,它将在spark集群中运行。在phoenix spark jar的pom.xml中,它将com.sun.jersey作为依赖项。另外,phoenix spark将spark core作为依赖项,而spark core又将com.sun.jersey作为pom.xml依赖项。这就是冲突所在。那么,您是否正在运行web服务器?例如,仅使用pom.xml中的核心库?感谢您回来。该应用程序不是web服务器,而是一个spark作业,它使用此客户端进行Http调用。因此,此spark作业在pom.xml中包含spark依赖项,这将引入com.sun.jersey。请在此处共享pom好吗?你应该能够排除其中一个相互冲突的从属关系。我认为你很困惑。不需要球衣。也许你指的是Sparkjava,web框架?我的应用程序使用phoenix spark jar,它将在spark集群中运行。在phoenix spark jar的pom.xml中,它将com.sun.jersey作为依赖项。另外,phoenix spark将spark core作为依赖项,而spark core又将com.sun.jersey作为pom.xml依赖项。这就是冲突所在。那么,您是否正在运行web服务器?例如,仅使用pom.xml中的核心库?感谢您回来。该应用程序不是web服务器,而是一个spark作业,它使用此客户端进行Http调用。因此,此spark作业在pom.xml中包含spark依赖项,这将引入com.sun.jersey。请在此处共享pom好吗?您应该能够排除其中一个冲突的依赖项