WSO2 CEP-自定义接收器适配器:事件格式

WSO2 CEP-自定义接收器适配器:事件格式,wso2,custom-adapter,wso2cep,Wso2,Custom Adapter,Wso2cep,我正在尝试建立一个自定义接收器适配器。它将读取CSV文件并将事件推送到流。 据我所知,我们必须遵循任何WSO2标准格式(文本、XML或JSON)将数据推送到流中 问题是,CSV文件与上述任何标准格式都不匹配。我们必须在自定义适配器中将csv值转换为任何受支持的格式。 根据我的观察,WSO2文本格式不支持字符串值中的逗号(,)。因此,我决定转换CSV JSON 我的问题如下: 如果值为逗号,如何生成WSO2文本事件 (如果第1点不可能)在我的自定义适配器MessageType中,如果我只添加文本或

我正在尝试建立一个自定义接收器适配器。它将读取CSV文件并将事件推送到流。 据我所知,我们必须遵循任何WSO2标准格式(文本、XML或JSON)将数据推送到流中

问题是,CSV文件与上述任何标准格式都不匹配。我们必须在自定义适配器中将csv值转换为任何受支持的格式。 根据我的观察,WSO2文本格式不支持字符串值中的逗号(,)。因此,我决定转换CSV JSON

我的问题如下:

  • 如果值为逗号,如何生成WSO2文本事件
  • (如果第1点不可能)在我的自定义适配器MessageType中,如果我只添加文本或全部3个(文本、XML、JSON),就可以了。但如果我只添加JSON,我会得到下面的错误。我的目标是只添加JSON并将所有CSV转换为JSON以避免混淆

    [2016-09-19 15:38:02406]错误{org.wso2.carbon.event.receiver.core.EventReceiverDeployer}-错误,事件接收器未部署且处于非活动状态,事件适配器类型文件不支持文本映射


  • 要读取CSV文件并将事件推送到流,可以使用文件尾适配器。请参阅示例“”。此示例包含可用于映射CSV输入的正则表达式模式


    除此之外,正如在评论中所建议的,您还可以查看。但是,事件模拟器不是事件接收器,也就是说,它不会实时接收事件,而是“播放”先前定义的一组事件(在本例中为CSV文件),以模拟事件流。它不会持续监视文件中的新事件。如果要监视新事件的文件,那么考虑使用文件尾适配器.< /p> 从CSV文件中读取并将事件推送到流中,可以使用文件尾适配器。请参阅示例“”。此示例包含可用于映射CSV输入的正则表达式模式


    除此之外,正如在评论中所建议的,您还可以查看。但是,事件模拟器不是事件接收器,也就是说,它不会实时接收事件,而是“播放”先前定义的一组事件(在本例中为CSV文件),以模拟事件流。它不会持续监视文件中的新事件。如果要监视新事件的文件,那么考虑使用文件尾适配器。

    < P>我刚刚完成了。这不是一种优雅的方式。然而,这对我来说很好

    正如我所提到的,JSON格式对我来说是最灵活的。我从文件中读取并将每一行/事件转换为WSO2 JSON格式

    这个选项的问题是,我想从管理控制台将消息格式限制为JSON(“创建新接收器时的消息格式”菜单)。如果我只添加JSON[
    supportInputMessageTypes.add(MessageType.JSON)
    ],它会显示错误,正如我在上面的问题2中提到的那样

    解决方案是,直接使用相应的字符串,而不是从MessageType类中放入静态变量。现在,我在EventAdapterFactory类中的方法“
    getSupportedMessageFormats()
    ”如下所示:

    @覆盖
    公共列表getSupportedMessageFormats(){
    List supportInputMessageTypes=new ArrayList();
    //只是将类型转换为字符串值
    //为避免错误“事件适配器类型文件不支持文本映射”
    字符串jsonType=MessageType.JSON;
    supportInputMessageTypes.add(jsonType);
    //supportInputMessageTypes.add(MessageType.JSON);
    //supportInputMessageTypes.add(MessageType.XML);
    //supportInputMessageTypes.add(MessageType.TEXT);
    返回SupportInputMessageType;
    }

    我向WSO2团队提出请求,请允许JSON格式的事件适配器类型文件


    谢谢,奥贝德,我刚到。这不是一种优雅的方式。然而,这对我来说很好

    正如我所提到的,JSON格式对我来说是最灵活的。我从文件中读取并将每一行/事件转换为WSO2 JSON格式

    这个选项的问题是,我想从管理控制台将消息格式限制为JSON(“创建新接收器时的消息格式”菜单)。如果我只添加JSON[
    supportInputMessageTypes.add(MessageType.JSON)
    ],它会显示错误,正如我在上面的问题2中提到的那样

    解决方案是,直接使用相应的字符串,而不是从MessageType类中放入静态变量。现在,我在EventAdapterFactory类中的方法“
    getSupportedMessageFormats()
    ”如下所示:

    @覆盖
    公共列表getSupportedMessageFormats(){
    List supportInputMessageTypes=new ArrayList();
    //只是将类型转换为字符串值
    //为避免错误“事件适配器类型文件不支持文本映射”
    字符串jsonType=MessageType.JSON;
    supportInputMessageTypes.add(jsonType);
    //supportInputMessageTypes.add(MessageType.JSON);
    //supportInputMessageTypes.add(MessageType.XML);
    //supportInputMessageTypes.add(MessageType.TEXT);
    返回SupportInputMessageType;
    }

    我向WSO2团队提出请求,请允许JSON格式的事件适配器类型文件


    谢谢,Obaid

    您实际上可以完全避免这种转换,因为我们可以用csv数据模拟事件流。请参阅了解如何进行。实际上,您可以完全避免这种转换,因为我们可以使用csv数据模拟事件流。请参阅学习如何找到。嗨,迪里尼&查里尼,谢谢你的回复。我认为事件模拟器不是我正在寻找的解决方案,我无法自动执行(如果我错了,请纠正我)。我已经探索了文件尾,并利用它构建了一个csv文件接收器。问题是,它向我展示了我在问题2中提到的问题。你能给我提个建议吗?嗨,迪里尼和查里尼,谢谢