簡體   English   中英

將 WSO2 Micro Integrator 與 Kafka 連接時出現 Kafka 連接器錯誤

[英]Kafka connector error on connecting WSO2 Micro Integrator with Kafka

我正嘗試按照此說明將 Kafka 與 wso2 Micro Integrator 連接起來。 我使用 WSO2 的 Integration Studio 來開發它。 這是代碼,

<?xml version="1.0" encoding="UTF-8"?>
<api context="/create-customer" name="create-customer" xmlns="http://ws.apache.org/ns/synapse">
    <resource methods="POST">
        <inSequence>
            <kafkaTransport.init>
                <bootstrapServers>localhost:9092</bootstrapServers>
                <keySerializerClass>org.apache.kafka.common.serialization.StringSerializer</keySerializerClass>
                <valueSerializerClass>org.apache.kafka.common.serialization.StringSerializer</valueSerializerClass>
            </kafkaTransport.init>
            <kafkaTransport.publishMessages>
                <topic>customer</topic>
            </kafkaTransport.publishMessages>
            <respond/>
        </inSequence>
        <outSequence/>
        <faultSequence/>
    </resource>
</api>

但是當我發送請求時,我得到了以下錯誤。

[2023-01-14 21:27:36,570]  INFO {KafkaProduceConnector} - {api:create-customer} SEND : send message to  Broker lists
[2023-01-14 21:27:36,583] ERROR {KafkaProduceConnector} - {api:create-customer} Kafka producer connector : Error sending the message to broker org.wso2.carbon.connector.exception.InvalidConfigurationException: Connection name is not set.
    at org.wso2.carbon.connector.KafkaProduceConnector.getConnectionName(KafkaProduceConnector.java:262)
    at org.wso2.carbon.connector.KafkaProduceConnector.publishMessage(KafkaProduceConnector.java:237)
    at org.wso2.carbon.connector.KafkaProduceConnector.connect(KafkaProduceConnector.java:138)
    at org.wso2.carbon.connector.core.AbstractConnector.mediate(AbstractConnector.java:32)
    at org.apache.synapse.mediators.ext.ClassMediator.updateInstancePropertiesAndMediate(ClassMediator.java:178)
    at org.apache.synapse.mediators.ext.ClassMediator.mediate(ClassMediator.java:97)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:110)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:72)
    at org.apache.synapse.mediators.template.TemplateMediator.mediate(TemplateMediator.java:136)
    at org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:170)
    at org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:93)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:110)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:72)
    at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158)
    at org.apache.synapse.api.Resource.process(Resource.java:342)
    at org.apache.synapse.api.API.process(API.java:477)
    at org.apache.synapse.api.AbstractApiHandler.apiProcess(AbstractApiHandler.java:93)
    at org.apache.synapse.api.AbstractApiHandler.dispatchToAPI(AbstractApiHandler.java:71)
    at org.apache.synapse.api.rest.RestRequestHandler.dispatchToAPI(RestRequestHandler.java:90)
    at org.apache.synapse.api.rest.RestRequestHandler.process(RestRequestHandler.java:76)
    at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:54)
    at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:344)
    at org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:101)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
    at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:376)
    at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:435)
    at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:183)
    at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:829)

我正在按照文檔中的要求使用 MI 4.1.0 版本和 kafka 2.12。 Integration studio 內部使用的 Kafka 連接器是 3.12。 正如我所注意到的,根據這個參考,在<kafkaTransport.init>中我們可以發送一個連接名稱。 但是 Integration Studio 不允許我將它添加到其中。 當我檢查<kafkaTransport.init>的屬性時,它沒有連接名稱字段。 誰能幫我克服這個問題?

確實在<kafkaTransport.init>中應該有可用的name字段。 那可能是一個錯誤。 在 sourceCode 中,它看起來可以從消息上下文中檢索。 嘗試將其聲明為屬性name ,如下所示:

<property name="name" value="Kafka_Sample" scope="default"/>

<kafkaTransport.publishMessages>之前設置

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM