首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAR用于扩展SIDDHI

JAR用于扩展SIDDHI
EN

Stack Overflow用户
提问于 2016-06-06 04:23:35
回答 1查看 302关注 0票数 0

我想要扩展siddhi,mi java代码是:

代码语言:javascript
复制
package org.wso2.siddhi.extension.fraude;

import org.wso2.siddhi.core.config.ExecutionPlanContext;
import org.wso2.siddhi.core.executor.ExpressionExecutor;
import org.wso2.siddhi.core.executor.function.FunctionExecutor;
import org.wso2.siddhi.query.api.definition.Attribute;
import org.wso2.siddhi.query.api.definition.Attribute.Type;


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;
import java.io.StringReader;

public class Swordphish extends FunctionExecutor {
    ExpressionExecutor[] url;

    public static void main (String[] arg1){
        System.out.println("Programa test phishing");
    }

    @Override
    protected void init(ExpressionExecutor[] url, ExecutionPlanContext arg1) {
        // TODO Auto-generated method stub
        this.url    =   url;
    }

    @Override
    public Type getReturnType() {
        // TODO Auto-generated method stub
        return Attribute.Type.FLOAT;
    }

    @Override
    public void start() {
        // TODO Auto-generated method stub

    }

    @Override
    public void stop() {
        // TODO Auto-generated method stub

    }

    @Override
    public Object[] currentState() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void restoreState(Object[] arg0) {
        // TODO Auto-generated method stub

    }

    @Override
    protected Object execute(Object[] arg0) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    protected Object execute(Object arg0) {
        // TODO Auto-generated method stub
        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 new Float(res);
    }

}

旁白:

代码语言:javascript
复制
#
# Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
#
# WSO2 Inc. licenses this file to you under the Apache License,
# Version 2.0 (the "License"); you may not use this file except
# in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#

swordurl=org.wso2.siddhi.extension.fraude.Swordphish

我生成了我的JAR,您的位置是C:\wso2\wso2das-3.0.1\repository\components\lib

我可以用siddhi的"swordurl“:

代码语言:javascript
复制
from DSBStream
select fraude:swordurl('www.babas.com') as porcsword
insert into testswordphish;

但是我运行了我的执行计划,我得到了下一个错误:

代码语言:javascript
复制
java.lang.NoClassDefFoundError: javax/ws/rs/client/ClientBuilder

这个错误总是发生在我对Siddhi使用外部依赖项时。为什么?

在本例中,我使用下一个外部依赖项:

代码语言:javascript
复制
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;
import java.io.StringReader;
EN

回答 1

Stack Overflow用户

发布于 2016-06-07 19:21:28

我将外部jar复制到:

代码语言:javascript
复制
<DAS_HOME>\repository\components\lib
<DAS_HOME>\repository\components\plugins

我也创建了我的jar,包括外部jar。我使用的选项是"Runnable JAR File“。

我的问题依然存在。

我真的不能用外部库扩展Siddhi,也不明白为什么。

我的MANIFEST.MF是下一个:

代码语言:javascript
复制
Manifest-Version: 1.0
Rsrc-Class-Path: ./ siddhi-query-api_3.0.4.jar javax.json-1.0.4.jar ja
 vax.json-api-1.0.jar jaxrs-api-3.0.2.Final.jar resteasy-client-3.0.2.
 Final.jar resteasy-jaxrs-3.0.2.Final.jar siddhi-core_3.0.4.jar
Class-Path: .
Rsrc-Main-Class: org.wso2.siddhi.extension.fraude.Swordphish
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37649511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档