java.lang.NoSuchFieldError:elasticsearch Watcher插件中的\u符号\u哈希\u溢出]失败
我正在尝试使用JavaAPI作为ElasticSearchWatcher插件。因此,这就是使用Watcher JAVA PUT API创建新手表的方法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
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)