有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JAVAlang.NoSuchMethodError:apachestorm螺栓中的spring getrequest

嗨,我正在研究风暴拓扑。在一个螺栓我做一个请求到后端服务器。我通过一个可运行的jar文件将接口集成到后端。当我在一个无风暴项目中整合文件时,它工作得很好。但在我的风暴拓扑中,我得到了一个错误

我的请求如下:

  public Product getProductById(String id) {
    String path = this.urlPrefix + "/byid/" + id;
    Book book = (Book)RequestGenerator.newTemplate().exchange(LABELS.SERVER_IP + path, HttpMethod.GET, (HttpEntity)null, Book.class, new Object[0]).getBody();
    ....

我的请求得到了构建

 @SuppressWarnings("deprecation")
  public static RestTemplate newTemplate() {
    if(INSTANCE == null) {
        INSTANCE = new RequestGenerator();
    }
    
    RestTemplate restTemplate = new RestTemplate();
    restTemplate.getInterceptors().add(new BasicAuthorizationInterceptor(INSTANCE.getUsername(), INSTANCE.getPassword()));
    return restTemplate;
}

正如在一个非风暴项目中所说的,它是有效的。但在暴风雨中,我得到了以下错误信息

34291 [Thread-15-backendFetcher-executor[2 2]] ERROR o.a.s.util - Async loop died!
java.lang.NoSuchMethodError: 'java.lang.Object com.fasterxml.jackson.databind.Module.getTypeId()'
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.registerWellKnownModulesIfAvailable(Jackson2ObjectMapperBuilder.java:796) ~[abc.jar:?]
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.configure(Jackson2ObjectMapperBuilder.java:669) ~[abc.jar:?]
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.build(Jackson2ObjectMapperBuilder.java:652) ~[abc.jar:?]
at org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.<init>(MappingJackson2HttpMessageConverter.java:59) ~[abc.jar:?]
at org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter.<init>(AllEncompassingFormHttpMessageConverter.java:76) ~[abc.jar:?]
at org.springframework.web.client.RestTemplate.<init>(RestTemplate.java:147) ~[abc.jar:?]
at de.janis.apifrontend.RequestGenerator.newTemplate(RequestGenerator.java:50) ~[abc.jar:?]
at de.janis.apifrontend.product.DBInterfaceBook.getProductById(DBInterfaceBook.java:29) ~[abc.jar:?]
at de.janis.dbconnector.BackendRequestBolt.execute(BackendRequestBolt.java:32) ~[classes/:?]
at org.apache.storm.topology.BasicBoltExecutor.execute(BasicBoltExecutor.java:50) ~[storm-core-1.0.2.jar:1.0.2]
at org.apache.storm.daemon.executor$fn__8058$tuple_action_fn__8060.invoke(executor.clj:731) ~[storm-core-1.0.2.jar:1.0.2]
at org.apache.storm.daemon.executor$mk_task_receiver$fn__7979.invoke(executor.clj:464) ~[storm-core-1.0.2.jar:1.0.2]
at org.apache.storm.disruptor$clojure_handler$reify__7492.onEvent(disruptor.clj:40) ~[storm-core-1.0.2.jar:1.0.2]
at org.apache.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:451) ~[storm-core-1.0.2.jar:1.0.2]
at org.apache.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:430) ~[storm-core-1.0.2.jar:1.0.2]
at org.apache.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:73) ~[storm-core-1.0.2.jar:1.0.2]
at org.apache.storm.daemon.executor$fn__8058$fn__8071$fn__8124.invoke(executor.clj:850) ~[storm-core-1.0.2.jar:1.0.2]
at org.apache.storm.util$async_loop$fn__624.invoke(util.clj:484) [storm-core-1.0.2.jar:1.0.2]
at clojure.lang.AFn.run(AFn.java:22) [clojure-1.7.0.jar:?]
at java.base/java.lang.Thread.run(Thread.java:829) [?:?]

34294 [Thread-15-backendFetcher-executor[2 2]] ERROR o.a.s.d.executor - 
java.lang.NoSuchMethodError: 'java.lang.Object com.fasterxml.jackson.databind.Module.getTypeId()'
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.registerWellKnownModulesIfAvailable(Jackson2ObjectMapperBuilder.java:796) ~[abc.jar:?]
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.configure(Jackson2ObjectMapperBuilder.java:669) ~[abc.jar:?]
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.build(Jackson2ObjectMapperBuilder.java:652) ~[abc.jar:?]
at org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.<init>(MappingJackson2HttpMessageConverter.java:59) ~[abc.jar:?]
at org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter.<init>(AllEncompassingFormHttpMessageConverter.java:76) ~[abc.jar:?]
at org.springframework.web.client.RestTemplate.<init>(RestTemplate.java:147) ~[abc.jar:?]
at de.janis.apifrontend.RequestGenerator.newTemplate(RequestGenerator.java:50) ~[abc.jar:?]
at de.janis.apifrontend.product.DBInterfaceBook.getProductById(DBInterfaceBook.java:29) ~[abc.jar:?]
at de.janis.dbconnector.BackendRequestBolt.execute(BackendRequestBolt.java:32) ~[classes/:?]
at org.apache.storm.topology.BasicBoltExecutor.execute(BasicBoltExecutor.java:50) ~[storm-core-1.0.2.jar:1.0.2]
at org.apache.storm.daemon.executor$fn__8058$tuple_action_fn__8060.invoke(executor.clj:731) ~[storm-core-1.0.2.jar:1.0.2]
at org.apache.storm.daemon.executor$mk_task_receiver$fn__7979.invoke(executor.clj:464) ~[storm-core-1.0.2.jar:1.0.2]
at org.apache.storm.disruptor$clojure_handler$reify__7492.onEvent(disruptor.clj:40) ~[storm-core-1.0.2.jar:1.0.2]
at org.apache.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:451) ~[storm-core-1.0.2.jar:1.0.2]
at org.apache.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:430) ~[storm-core-1.0.2.jar:1.0.2]
at org.apache.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:73) ~[storm-core-1.0.2.jar:1.0.2]
at org.apache.storm.daemon.executor$fn__8058$fn__8071$fn__8124.invoke(executor.clj:850) ~[storm-core-1.0.2.jar:1.0.2]
at org.apache.storm.util$async_loop$fn__624.invoke(util.clj:484) [storm-core-1.0.2.jar:1.0.2]
at clojure.lang.AFn.run(AFn.java:22) [clojure-1.7.0.jar:?]
at java.base/java.lang.Thread.run(Thread.java:829) [?:?]

34336 [Thread-15-backendFetcher-executor[2 2]] ERROR o.a.s.util - Halting process: ("Worker died")
java.lang.RuntimeException: ("Worker died")
at org.apache.storm.util$exit_process_BANG_.doInvoke(util.clj:341) [storm-core-1.0.2.jar:1.0.2]
at clojure.lang.RestFn.invoke(RestFn.java:423) [clojure-1.7.0.jar:?]
at org.apache.storm.daemon.worker$fn__8659$fn__8660.invoke(worker.clj:761) [storm-core-1.0.2.jar:1.0.2]
at org.apache.storm.daemon.executor$mk_executor_data$fn__7875$fn__7876.invoke(executor.clj:274) [storm-core-1.0.2.jar:1.0.2]
at org.apache.storm.util$async_loop$fn__624.invoke(util.clj:494) [storm-core-1.0.2.jar:1.0.2]
at clojure.lang.AFn.run(AFn.java:22) [clojure-1.7.0.jar:?]
at java.base/java.lang.Thread.run(Thread.java:829) [?:?]

Process finished with exit code 1

我的猜测是,《暴风雨》和《春天》的连载有冲突。但我不知道到底是什么错误以及如何修复它


共 (0) 个答案