apache-kafka - WSO2 Integration Studio v6.5.0 的内置 Kafka 模板抛出 NoClassDefFoundError
问题描述
我已经在我的 Windows 工作站中安装了 WSO2 Integration Studio 6.5.0 版,并使用 Kafka Consumer and Producer 内置模板创建了一个项目。
然后我用我自己的 Kafka 服务器设置(主题名称“myTopic”)配置了项目。
然后我右键单击复合应用程序并选择 Export Project Artifacts and Run。
控制台窗口在最顶部显示以下消息:
[2019-06-25 09:23:45,499] [micro-integrator] INFO - LibraryArtifactDeployer Synapse Library named '{org.wso2.carbon.connector}kafkaTransport' has been deployed from file : C:\IntegrationStudio\runtime\microesb\tmp\carbonapps\-1234\1561465425230TestCompositeApplication_1.0.0.car\kafkaTransport-connector_2.0.6\kafkaTransport-connector-2.0.6.zip
[2019-06-25 09:23:45,517] [micro-integrator] INFO - SynapseImportFactory Successfully created Synapse Import: kafkaTransport
[2019-06-25 09:23:45,533] [micro-integrator] ERROR - ClassMediatorFactory
Error in instantiating class :
org.wso2.carbon.connector.KafkaProduceConnector
java.lang.NoClassDefFoundError: org/apache/kafka/common/header/Headers
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
at java.lang.Class.getConstructor0(Class.java:3075)
[snipped rest for clarity]
我尝试卸载 Integrator Studio 并以提升的权限运行它,但无济于事。
我希望项目能够正常部署。
编辑:复制后:
- kafka_2.11-2.2.1.jar
- 指标-核心-2.2.0.jar
- zkclient-0.11.jar
- kafka-clients-2.2.1.jar
- scala-library-2.11.12.jar
- zookeeper-3.4.13.jar
到EI_HOME/lib
目录,异常变为:
org.apache.axis2.deployment.DeploymentException: kafka/consumer/ConsumerTimeoutException
at org.apache.synapse.deployers.AbstractSynapseArtifactDeployer.deploy(AbstractSynapseArtifactDeployer.java:219)
at org.wso2.carbon.application.deployer.synapse.SynapseAppDeployer.deployArtifactType(SynapseAppDeployer.java:1099)
at org.wso2.carbon.application.deployer.synapse.SynapseAppDeployer.deployArtifacts(SynapseAppDeployer.java:114)
at org.wso2.carbon.application.deployer.internal.ApplicationManager.deployCarbonApp(ApplicationManager.java:272)
at org.wso2.carbon.application.deployer.CappAxis2Deployer.deploy(CappAxis2Deployer.java:72)
at org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:136)
at org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:807)
at org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:144)
[snipped for clarity]
Caused by: org.apache.axis2.deployment.DeploymentException: kafka/consumer/ConsumerTimeoutException
at org.apache.synapse.deployers.AbstractSynapseArtifactDeployer.deploy(AbstractSynapseArtifactDeployer.java:207)
... 87 more
Caused by: java.lang.NoClassDefFoundError: kafka/consumer/ConsumerTimeoutException
at org.wso2.carbon.inbound.endpoint.protocol.kafka.KAFKAPollingConsumer.startsMessageListener(KAFKAPollingConsumer.java:90)
at org.wso2.carbon.inbound.endpoint.protocol.kafka.KAFKAProcessor.init(KAFKAProcessor.java:96)
at org.apache.synapse.inbound.InboundEndpoint.init(InboundEndpoint.java:79)
at org.apache.synapse.deployers.InboundEndpointDeployer.deploySynapseArtifact(InboundEndpointDeployer.java:57)
at org.apache.synapse.deployers.AbstractSynapseArtifactDeployer.deploy(AbstractSynapseArtifactDeployer.java:197)
... 87 more
Caused by: java.lang.ClassNotFoundException: kafka.consumer.ConsumerTimeoutException cannot be found by synapse-core_2.1.7.wso2v111
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:475)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 92 more
解决方案
根据此文档https://docs.wso2.com/display/EI650/Kafka+Inbound+Protocol,Kafka 的推荐版本是 kafka_2.9.2-0.8.1.1。您可以在下面的链接中下载它。http://kafka.apache.org/downloads.html。请使用这些 jar 并将它们复制到 EI_HOME/lib。这也有一个github问题。https://github.com/wso2/product-ei/issues/2239
推荐阅读
- c - 我需要能够从标准输入中读取字符串
- c# - 从 C# 检查已安装的 PowerShell 版本
- java - 如何在二维数组中选择三个随机点?
- facebook - 调用哪个 Facebook 营销 API 在 Facebook 页面上发布免费招聘广告?
- javascript - 向 DataTables 表添加数据时无法更改页面
- macos - 如何使用变量获得“引用形式”?
- python - 如何解释通过 UDP 传输的 LiDar 数据包?
- swift - 为什么属性 last 没有在 Swift Collection 协议中声明?
- java - 两个互斥数据源上的 Spring data jpa
- sql-server - 直接通过SQL修改报表订阅参数