编写自定义扩展Siddhi

时间:2016-06-03 02:00:40

标签: java wso2 complex-event-processing siddhi

我有一个用于创建siddhi扩展的java程序,我的代码是下一个:

package co.com.easysol.phisingRestClient;

import java.io.StringReader;

import javax.json.Json;
import javax.json.JsonReader;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.core.MediaType;

public class App {
    public static void main(String[] args) {
        float res = new App().phisingProbability("http://dinas.tomsk.ru/js/index.html?paypal.com/uk/cgi-bin/");
        System.out.println("res: " + res);
    }

    public float phisingProbability(String url) {
        float res = 0;
        String e = null;
        try {
            Client client = ClientBuilder.newClient();
            e = client.target("http://52.37.125.225:3000/phishing").queryParam("url", url).request(MediaType.TEXT_HTML)
                    .get(String.class);

            try (JsonReader jr = Json.createReader(new StringReader(e))) {
                String valor = jr.readObject().getString("result");
                try {
                    res = Float.parseFloat(valor);
                } catch (Exception ex1) {
                    res = 0;
                }
            }

        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return res;
    }
}

我的Custom.siddhiext:

url=co.com.easysol.phisingRestClient.App

在我的ExecutionPlan中,我使用下一个代码:

from DSBStream
select custom:url(meta_phr_id_pharming_resume) as porc
insert into conteo;

custom.siddhiext文件位于/ repository / components / lib中,但我有下一个错误:

'url' is neither a function extension nor an aggregated attribute extension in execution plan "ExecutionPlan"

为什么?

2 个答案:

答案 0 :(得分:2)

这里的问题是你的类没有扩展Siddhi中的扩展类。由于您的要求是编写自定义函数,因此请对其进行修改以扩展FunctionExecutor并覆盖所需的方法as in this document

有关扩展程序的更多信息可以是found here

答案 1 :(得分:0)

您可以使用原型生成custom siddhi extensions以及您的资源名称中的更多内容是Custom.siddhiext,但是当您使用键入自定义时请检查它。