当前位置: 首页 > 知识库问答 >
问题:

使用jackson核心流式API的java.lang.NoSuchMethodError[重复]

蓬宾白
2023-03-14

我使用的是jackson核心版本2.8.3,但为什么我一直得到java.lang.nosuchmethoderror?我没有使用任何其他jackson的模块,只是核心(流)API

Object[] result = imageGenerator.generate(lowerBound, upperBound, fileNames);
MWNumericArray array = (MWNumericArray)result[0];
try (Writer writer = response.getWriter();
     JsonGenerator generator = res.getJsonFactory().createGenerator(writer)) {

     generator.writeStartObject();
         generator.writeFieldName("dimension");
         generator.writeArray(array.getDimensions(), 0, 2); // java.lang.NoSuchMethodError: com.fasterxml.jackson.core.JsonGenerator.writeArray([III)V

         int[] pixels = array.getIntData();
         generator.writeFieldName("pixels");
         generator.writeArray(pixels, 0, pixels.length);
     generator.writeEndObject();
}

堆栈跟踪

at servlet.IonImageGeneratorServlet.processRequest(IonImageGeneratorServlet.java:48)
at servlet.IonImageGeneratorServlet.doGet(IonImageGeneratorServlet.java:80)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.glassfish.tyrus.servlet.TyrusServletFilter.doFilter(TyrusServletFilter.java:305)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:416)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:283)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:526)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571)
at java.lang.Thread.run(Thread.java:745)

共有1个答案

柳昊焱
2023-03-14

这个错误几乎总是(99%的情况)表明您根据一个库版本构建代码,但部署环境有一个不同的版本,该版本缺少该方法。代码编译正确,但当加载到部署环境中时,JVM试图将其与可用的库类版本链接,但找不到该方法。

解决方案是确保在开发环境和部署服务器中都有相同版本的库。

 类似资料:
  • 0.15 新版功能. 该节文档讲述Scrapy核心API,目标用户是开发Scrapy扩展(extensions)和中间件(middlewares)的开发人员。 Crawler API Scrapy API的主要入口是 Crawler 的实例对象, 通过类方法 from_crawler 将它传递给扩展(extensions)。 该对象提供对所有Scrapy核心组件的访问, 也是扩展访问Scrapy核

  • 问题内容: 你们中的某些人可能知道某些核心Java API对System.gc()进行了显式调用。我知道发生这种情况的两种情况: 蔚来 我相信这样做是为了在系统耗尽“直接”内存时对直接ByteBuffer进行一些清理。 RMI。在这里,原因对我来说还不清楚… 因此,问题是: 是否知道RMI需要System.gc()的原因? 您是否知道核心API(甚至某些其他流行的库)可以直接调用System.gc

  • Fastjson API入口类是,常用的序列化操作都可以在JSON类上的静态方法直接完成。 下面是JSON类的常用方法: 方法 说明 public static final Object parse(String text);  把JSON文本转换为JSONObject或者JSONArray public static final JSONObject parseObject(String tex

  • 主要内容:DemoRecordAcumulator缓存里面会有多个队列(每个队列代表一个分区),每个队列存放发往同个分区的消息; sender会将消息分装为一个一个网络请求ClientRequest,并将ClientRequest发送给NetworkClient组件,做一些准备工作, clientrequest会暂存在kafkachannel;然后由sender发送给kafka集群; Demo

  • 主要内容:1. 概述,2. 框架设计,3 依赖关系,4 暴露服务时序,5 引用服务时序,6 远程调用细节1. 概述 本文主要分享 Dubbo 的核心流程。 在 《Dubbo 开发指南 —— 框架设计.》和《Dubbo 开发指南 —— 实现细节.》 2. 框架设计 2.1 整体设计 图例说明: 图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口,位于中轴线上的为双方都用到的接口。 图中从下至上分为十层,各层均为单向依赖,右边的黑色箭头代表层之间的依赖关系,每一层都可以