elasticsearch-watcher,Java,Json,Maven,Jersey,elasticsearch Watcher" /> elasticsearch-watcher,Java,Json,Maven,Jersey,elasticsearch Watcher" />

java.lang.NoSuchFieldError:elasticsearch Watcher插件中的\u符号\u哈希\u溢出]失败

java.lang.NoSuchFieldError:elasticsearch Watcher插件中的\u符号\u哈希\u溢出]失败,java,json,maven,jersey,elasticsearch-watcher,Java,Json,Maven,Jersey,elasticsearch Watcher,我正在尝试使用JavaAPI作为ElasticSearchWatcher插件。因此,这就是使用Watcher JAVA PUT API创建新手表的方法 public static void createNew(Alert reqAlert) { WatcherClient watcherClient = watchClient.createAndGetClient(reqAlert.getCluster()); WatchSourceBuilder wat

我正在尝试使用JavaAPI作为ElasticSearchWatcher插件。因此,这就是使用Watcher JAVA PUT API创建新手表的方法

public static void createNew(Alert reqAlert) {

         WatcherClient watcherClient = watchClient.createAndGetClient(reqAlert.getCluster());

         WatchSourceBuilder watchSourceBuilder = WatchSourceBuilders.watchBuilder();

         watchSourceBuilder.trigger(TriggerBuilders.schedule(Schedules.cron(getcronString(reqAlert.getInterval()))));

         String esQuery = getQuery(reqAlert);
         System.out.println(esQuery);

         SearchRequest request = Requests.searchRequest("idx").source(esQuery);
         watchSourceBuilder.input(new SearchInput(request, null, null, null));

         watchSourceBuilder.condition(new ScriptCondition(Script.inline("ctx.payload.hits.total > 1").build()));
         EmailTemplate.Builder emailBuilder = EmailTemplate.builder();
         emailBuilder.to(reqAlert.getEmail());
         emailBuilder.subject(reqAlert.getSubject());
         emailBuilder.textBody(reqAlert.getBody());

         System.out.println("Input and COndition done");

         EmailAction.Builder emailActionBuilder = EmailAction.builder(emailBuilder.build());

         watchSourceBuilder.addAction("email", emailActionBuilder);

         System.out.println("Email action done");
         PutWatchResponse putWatchResponse = watcherClient.preparePutWatch(reqAlert.getAlertName())
                    .setSource(watchSourceBuilder)
                    .get();
         System.out.println("All done"); 



    }
函数getQuery的实现是:

public static String getQuery(Alert reqAlert) {


        Map main = new LinkedHashMap();
        Map query = new LinkedHashMap();
        Map bool = new LinkedHashMap();
        Map must = new LinkedHashMap();
        Map match = new LinkedHashMap();
        Map filter = new LinkedHashMap();
        Map range = new LinkedHashMap();
        Map epoch = new LinkedHashMap();
        epoch.put("gte", "1454964688008");
        range.put("epoch", epoch);
        filter.put("range", range);
        match.put("action", reqAlert.getQueryString());
        must.put("match", match);
        must.put("filter", filter);
        bool.put("must", must);
        query.put("bool", bool);
        main.put("query", query);


        JSONObject mainObject = new JSONObject(main);

        return mainObject.toString();



    }
现在,我正在使用
org.codehaus.jettison
中的这个JSON对象,因为它使用LinkedHashMap来帮助我保留JSON的键序列。(这是强制性要求。我们必须保持钥匙的顺序)

我的pom.xml(如果需要)(我只显示必要的部分):


com.fasterxml.jackson.core
杰克逊数据绑定
2.2.3
org.glassfish.jersey.media
泽西媒体公司
2.17
org.glassfish.jersey.containers
jersey容器servlet核心
2.17
org.glassfish.jersey.core
泽西服务器
2.17
org.glassfish.jersey.core
泽西岛客户
2.17
org.codehaus.jettison
抛弃
1.3.5
org.elasticsearch.plugin
观察者
${es.version}
org.elasticsearch
弹性搜索
${es.version}
跑步时,我得到:

{"query":{"bool":{"must":{"match":{"action":"HI"},"filter":{"range":{"epoch":{"gte":"1454964688008"}}}}}}}
Input and COndition done
Email action done
May 20, 2016 11:29:20 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Rest service] in context with path [/alerting] threw exception [org.glassfish.jersey.server.ContainerException: java.lang.NoSuchFieldError: FAIL_ON_SYMBOL_HASH_OVERFLOW] with root cause
java.lang.NoSuchFieldError: FAIL_ON_SYMBOL_HASH_OVERFLOW
    at org.elasticsearch.common.xcontent.json.JsonXContent.<clinit>(JsonXContent.java:49)
    at org.elasticsearch.common.xcontent.XContentFactory.contentBuilder(XContentFactory.java:122)
    at org.elasticsearch.watcher.client.WatchSourceBuilder.buildAsBytes(WatchSourceBuilder.java:174)
    at org.elasticsearch.watcher.transport.actions.put.PutWatchRequest.setSource(PutWatchRequest.java:84)
    at org.elasticsearch.watcher.transport.actions.put.PutWatchRequestBuilder.setSource(PutWatchRequestBuilder.java:56)
    at com.watcher.addWatcher.createNew(addWatcher.java:99)
    at com.svc.addAlert.newAlert(addAlert.java:40)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:164)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:181)
    at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:203)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:101)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)
    at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:305)
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
    at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:288)
    at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1110)
    at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:401)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:386)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:335)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:222)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
{“查询”:{“bool”:{“must”:{“match”:{“action”:“HI”},“filter”:{“range”:{“epoch”:{“gte”:“1454964688008”}
输入和条件完成
电子邮件操作已完成
2016年5月20日晚上11:29:20 org.apache.catalina.core.StandardWrapper
严重:路径为[/alerting]的上下文中Servlet[Rest service]的Servlet.service()引发了异常[org.glassfish.jersey.server.ContainerException:java.lang.NoSuchFieldError:FAIL_ON_SYMBOL_HASH_OVERFLOW],并带有根本原因
java.lang.NoSuchFieldError:符号\u哈希\u溢出失败
位于org.elasticsearch.common.xcontent.json.JsonXContent.(JsonXContent.java:49)
位于org.elasticsearch.common.xcontent.XContentFactory.contentBuilder(XContentFactory.java:122)
位于org.elasticsearch.watcher.client.WatchSourceBuilder.buildAsBytes(WatchSourceBuilder.java:174)
位于org.elasticsearch.watcher.transport.actions.put.PutWatchRequest.setSource(PutWatchRequest.java:84)
位于org.elasticsearch.watcher.transport.actions.put.PutWatchRequestBuilder.setSource(PutWatchRequestBuilder.java:56)
位于com.watcher.addWatcher.createNew(addWatcher.java:99)
位于com.svc.addAlert.newAlert(addAlert.java:40)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:497)
位于org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
位于org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:164)
位于org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:181)
位于org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutingVoker.doDispatch(JavaResourceMethodDispatcherProvider.java:203)
位于org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:101)
位于org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)
位于org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)
位于org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)
位于org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:305)
位于org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
位于org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
位于org.glassfish.jersey.internal.Errors.process(Errors.java:315)
位于org.glassfish.jersey.internal.Errors.process(Errors.java:297)
位于org.glassfish.jersey.internal.Errors.process(Errors.java:267)
位于org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
位于org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:288)
位于org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1110)
位于org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:401)
位于org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:386)
位于org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:335)
位于org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:222)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
位于org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
位于org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
在org.apache.catalina上。
{"query":{"bool":{"must":{"match":{"action":"HI"},"filter":{"range":{"epoch":{"gte":"1454964688008"}}}}}}}
Input and COndition done
Email action done
May 20, 2016 11:29:20 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Rest service] in context with path [/alerting] threw exception [org.glassfish.jersey.server.ContainerException: java.lang.NoSuchFieldError: FAIL_ON_SYMBOL_HASH_OVERFLOW] with root cause
java.lang.NoSuchFieldError: FAIL_ON_SYMBOL_HASH_OVERFLOW
    at org.elasticsearch.common.xcontent.json.JsonXContent.<clinit>(JsonXContent.java:49)
    at org.elasticsearch.common.xcontent.XContentFactory.contentBuilder(XContentFactory.java:122)
    at org.elasticsearch.watcher.client.WatchSourceBuilder.buildAsBytes(WatchSourceBuilder.java:174)
    at org.elasticsearch.watcher.transport.actions.put.PutWatchRequest.setSource(PutWatchRequest.java:84)
    at org.elasticsearch.watcher.transport.actions.put.PutWatchRequestBuilder.setSource(PutWatchRequestBuilder.java:56)
    at com.watcher.addWatcher.createNew(addWatcher.java:99)
    at com.svc.addAlert.newAlert(addAlert.java:40)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:164)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:181)
    at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:203)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:101)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)
    at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:305)
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
    at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:288)
    at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1110)
    at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:401)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:386)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:335)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:222)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)