Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否由于明显的类路径冲突而导致ToDiscoverable强制转换错误?_Java_Apache Kafka_Jersey_Apache Kafka Connect - Fatal编程技术网

Java 是否由于明显的类路径冲突而导致ToDiscoverable强制转换错误?

Java 是否由于明显的类路径冲突而导致ToDiscoverable强制转换错误?,java,apache-kafka,jersey,apache-kafka-connect,Java,Apache Kafka,Jersey,Apache Kafka Connect,我们有一个Kafka Connect项目,我们依赖于从gitlab获取数据的。这个图书馆依赖于泽西岛。卡夫卡也使用球衣。启动连接器时,我们收到一个类强制转换错误,该错误似乎是由jersey具有某种全局发现模式引起的,该模式在服务器和客户端位于同一类路径时发生冲突 org.gitlab4j.api.GitLabApiException: org.glassfish.jersey.server.wadl.internal.WadlAutoDiscoverable cannot be cast to

我们有一个Kafka Connect项目,我们依赖于从gitlab获取数据的。这个图书馆依赖于泽西岛。卡夫卡也使用球衣。启动连接器时,我们收到一个类强制转换错误,该错误似乎是由jersey具有某种全局发现模式引起的,该模式在
服务器
客户端
位于同一类路径时发生冲突

org.gitlab4j.api.GitLabApiException: org.glassfish.jersey.server.wadl.internal.WadlAutoDiscoverable cannot be cast to org.glassfish.jersey.internal.spi.AutoDiscoverable
        at org.gitlab4j.api.AbstractApi.handle(AbstractApi.java:615)
        at org.gitlab4j.api.AbstractApi.get(AbstractApi.java:193)
        at poc.connector.gitlab.api.ExtendedIssuesApi.getIssues(GitlabExtendedApi.scala:34)
        at poc.connector.gitlab.GitLabSourceTask.poll(GitLabSourceTask.scala:49)
        at org.apache.kafka.connect.runtime.WorkerSourceTask.poll(WorkerSourceTask.java:244)
        at org.apache.kafka.connect.runtime.WorkerSourceTask.execute(WorkerSourceTask.java:220)
        at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:175)
        at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:219)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassCastException: org.glassfish.jersey.server.wadl.internal.WadlAutoDiscoverable cannot be cast to org.glassfish.jersey.internal.spi.AutoDiscoverable
        at java.util.TreeMap.compare(TreeMap.java:1295)
        at java.util.TreeMap.put(TreeMap.java:538)
        at java.util.TreeSet.add(TreeSet.java:255)
        at java.util.AbstractCollection.addAll(AbstractCollection.java:344)
        at java.util.TreeSet.addAll(TreeSet.java:312)
        at org.glassfish.jersey.model.internal.CommonConfig.configureAutoDiscoverableProviders(CommonConfig.java:599)
        at org.glassfish.jersey.client.ClientConfig$State.configureAutoDiscoverableProviders(ClientConfig.java:403)
        at org.glassfish.jersey.client.ClientConfig$State.initRuntime(ClientConfig.java:450)
        at org.glassfish.jersey.internal.util.collection.Values$LazyValueImpl.get(Values.java:341)
        at org.glassfish.jersey.client.ClientConfig.getRuntime(ClientConfig.java:826)
        at org.glassfish.jersey.client.ClientRequest.getConfiguration(ClientRequest.java:285)
        at org.glassfish.jersey.client.JerseyInvocation.validateHttpMethodAndEntity(JerseyInvocation.java:143)
        at org.glassfish.jersey.client.JerseyInvocation.<init>(JerseyInvocation.java:112)
        at org.glassfish.jersey.client.JerseyInvocation.<init>(JerseyInvocation.java:108)
        at org.glassfish.jersey.client.JerseyInvocation.<init>(JerseyInvocation.java:99)
        at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:419)
        at org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:319)
        at org.gitlab4j.api.GitLabApiClient.get(GitLabApiClient.java:382)
        at org.gitlab4j.api.GitLabApiClient.get(GitLabApiClient.java:370)
        at org.gitlab4j.api.AbstractApi.get(AbstractApi.java:191)
        ... 11 more


$ #inside of the plugin path of kafka connect:
$ find ./ | grep jersey | grep server                                                                                                                                                 Di 26 Feb 2019 15:46:41 CET
./schema-registry/jersey-server-2.27.jar
./confluent-kafka-mqtt/jersey-server-2.27.jar
./kafka/jersey-server-2.27.jar
./rest-utils/jersey-server-2.27.jar
org.gitlab4j.api.GitLabApiException:org.glassfish.jersey.server.wadl.internal.WadlAutoDiscoverable无法强制转换为org.glassfish.jersey.internal.spi.AutoDiscoverable
位于org.gitlab4j.api.AbstractApi.handle(AbstractApi.java:615)
位于org.gitlab4j.api.AbstractApi.get(AbstractApi.java:193)
位于poc.connector.gitlab.api.ExtendedIssuesApi.getIssues(GitlabExtendedApi.scala:34)
位于poc.connector.gitlab.GitLabSourceTask.poll(GitLabSourceTask.scala:49)
位于org.apache.kafka.connect.runtime.WorkerSourceTask.poll(WorkerSourceTask.java:244)
位于org.apache.kafka.connect.runtime.WorkerSourceTask.execute(WorkerSourceTask.java:220)
位于org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:175)
位于org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:219)
位于java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
在java.util.concurrent.FutureTask.run(FutureTask.java:266)处
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
运行(Thread.java:748)
原因:java.lang.ClassCastException:org.glassfish.jersey.server.wadl.internal.WadlAutoDiscoverable无法强制转换为org.glassfish.jersey.internal.spi.AutoDiscoverable
比较(TreeMap.java:1295)
位于java.util.TreeMap.put(TreeMap.java:538)
在java.util.TreeSet.add处(TreeSet.java:255)
位于java.util.AbstractCollection.addAll(AbstractCollection.java:344)
位于java.util.TreeSet.addAll(TreeSet.java:312)
位于org.glassfish.jersey.model.internal.CommonConfig.configureAutoDiscoverableProviders(CommonConfig.java:599)
位于org.glassfish.jersey.client.ClientConfig$State.configureAutoDiscoverableProviders(ClientConfig.java:403)
位于org.glassfish.jersey.client.ClientConfig$State.initRuntime(ClientConfig.java:450)
位于org.glassfish.jersey.internal.util.collection.Values$LazyValueImpl.get(Values.java:341)
位于org.glassfish.jersey.client.ClientConfig.getRuntime(ClientConfig.java:826)
位于org.glassfish.jersey.client.ClientRequest.getConfiguration(ClientRequest.java:285)
位于org.glassfish.jersey.client.JerseyInvocation.validateHttpMethodAndEntity(JerseyInvocation.java:143)
位于org.glassfish.jersey.client.JerseyInvocation.(JerseyInvocation.java:112)
位于org.glassfish.jersey.client.JerseyInvocation.(JerseyInvocation.java:108)
位于org.glassfish.jersey.client.JerseyInvocation.(JerseyInvocation.java:99)
位于org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:419)
位于org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:319)
位于org.gitlab4j.api.GitLabApiClient.get(GitLabApiClient.java:382)
位于org.gitlab4j.api.GitLabApiClient.get(GitLabApiClient.java:370)
位于org.gitlab4j.api.AbstractApi.get(AbstractApi.java:191)
... 还有11个
$#卡夫卡连接插件路径内部:
$find./| grep jersey | grep server Di 2019年2月26日欧洲中部时间15:46:41
./schema registry/jersey-server-2.27.jar
./confluent kafka mqtt/jersey-server-2.27.jar
./kafka/jersey-server-2.27.jar
./rest-utils/jersey-server-2.27.jar

我们如何配置代码以避免在connect应用程序的过程中使用了错误的类?或者我们如何避免在
自动发现
实现的上下文中出现强制转换错误?

我们的一个Kafka Connect连接器中出现类似问题,我们通过在连接器中着色
org.glassfish
解决了这个问题

我们将连接器打包为“uber JAR”,并将其放置在使用
plugin.path
设置配置的路径中

另请参见有关此主题的信息。据说

。。。插件不应包含Kafka Connect运行时提供的任何库


我们选择了着色,您也可以通过不在连接器中包装运动衫来解决此问题。

我们的卡夫卡连接连接器中有一个类似问题,我们通过在连接器中着色
org.glassfish
解决了此问题

我们将连接器打包为“uber JAR”,并将其放置在使用
plugin.path
设置配置的路径中

另请参见有关此主题的信息。据说

。。。插件不应包含Kafka Connect运行时提供的任何库


我们选择了遮光,您也可以通过不在连接器中打包球衣来解决此问题。

我只是添加了完全相同的问题。使用gitlab4j为gitlab开发kafka源连接器

我通过添加以下依赖项来排除assemby和shade插件的部分,从而修复了此问题:

<exclude>org.glassfish.jersey.inject</exclude>
<exclude>org.glassfish.jersey.core</exclude>
<exclude>org.glassfish.jersey.connectors</exclude>
org.glassfish.jersey.inject
org.glassfish.jersey.core
org.glassfish.jersey.connectors

我只是添加了完全相同的问题。使用gitlab4j为gitlab开发kafka源连接器

我通过添加以下依赖项来排除assemby和shade插件的部分,从而修复了此问题:

<exclude>org.glassfish.jersey.inject</exclude>
<exclude>org.glassfish.jersey.core</exclude>
<exclude>org.glassfish.jersey.connectors</exclude>
org.glassfish.jersey.inject
org.glassfish.jersey.core
org.glassfish.jersey.connectors