WSO2 Integration Studio v6.5.0的内置Kafka模板抛出NoClassDefFoundError

WSO2 Integration Studio v6.5.0's built-in Kafka template throws NoClassDefFoundError

我已经在我的 Windows 工作站中安装了 WSO2 Integration Studio 版本 6.5.0,并使用 Kafka 消费者和生产者内置模板创建了一个项目。

然后我用我自己的Kafka服务器设置配置了项目(主题名称"myTopic")。

然后我右键单击复合应用程序并选择导出项目工件和 运行。

控制台 window 在最顶部显示以下消息:

[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\-123461465425230TestCompositeApplication_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 并 运行 它具有提升的权限但无济于事。

我希望项目能够正常部署。

编辑:复制后:

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

您是否已将所需的 jars 从 kafka_home/libs 文件夹复制到 EI_home/lib,如果是,请分享您的代码以获取问题详情

根据此文档https://docs.wso2.com/display/EI650/Kafka+Inbound+Protocol, the recommended versions for Kafka is kafka_2.9.2-0.8.1.1. You can download it in the below link. http://kafka.apache.org/downloads.html. Please use those jars and copy them to the EI_HOME/lib. There is an github issue for this as well. https://github.com/wso2/product-ei/issues/2239

我可能有点晚了,但我们一直在使用 Kafka 的自定义入站端点。我们也遇到了完全相同的问题,这是解决它的唯一方法。 您可以使用 https://github.com/wso2-extensions/esb-inbound-kafka/blob/master/docs/config.md 来配置它。