国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct..........

這篇具有很好參考價值的文章主要介紹了Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct..........。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

將后端代碼部署到服務器上,供前端人員接接口,前端在接接口遇到的問題,登錄服務器看了下日志,發(fā)現(xiàn)是jackson序列化問題,日志如下:

2023-02-06 10:49:13,167 [cp-charge-admin,,,] [http-nio-0.0.0.0-2015-exec-7] ERROR c.chilwee.aspect.ControllerExceptionHandlerAdvice - [/admin/chargerCommand/setFivePower] [null]
org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class com.chilwee.dtos.socket.down.FivePower]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.chilwee.dtos.socket.down.FivePower` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
 at [Source: (PushbackInputStream); line: 2, column: 3]
        at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:272)
        at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:257)
        at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:205)
        at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:158)
        at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:131)
        at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:121)
        at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:167)
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:134)
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:879)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793)
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:748)
Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.chilwee.dtos.socket.down.FivePower` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
 at [Source: (PushbackInputStream); line: 2, column: 3]
        at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:67)
        at com.fasterxml.jackson.databind.DeserializationContext.reportBadDefinition(DeserializationContext.java:1611)
        at com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition(DatabindContext.java:400)
        at com.fasterxml.jackson.databind.DeserializationContext.handleMissingInstantiator(DeserializationContext.java:1077)
        at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1320)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:331)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:164)
        at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4482)
        at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3487)
        at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:269)
        ... 51 common frames omitted

翻譯是嵌套異常為com.fasterxml.jackson.databind.exc.InvalidDefinitionException:無法構(gòu)造“com.chilwe.dtos.socket.down.FivePower”的實例(不存在類似默認構(gòu)造函數(shù)的創(chuàng)建者):無法從Object值反序列化(不存在基于委托或?qū)傩缘膭?chuàng)建者)

原因是我在該實體類中添加了一個為了方便實例化該類用的構(gòu)造函數(shù),導致JVM不會添加默認的無參構(gòu)造函數(shù),而jackson的反序列化需要無參構(gòu)造函數(shù),因此報錯。

既然是jackson序列化問題那應該就是接口傳參或者反參的問題,于是就去看了下接口,http接口如下:


    @Log
    @Token
    @Auth(bizType = Auth.OPERATOR)
    @ApiOperation("設置五檔功率")
    @PostMapping("/setFivePower")
    public ChliweePointMallResponse<ChargeEnum> setFivePower(@RequestBody @Valid FivePower fivePower) {
        return chargerCommandService.setFivePower(fivePower);
    }

傳入的對象實體類為:

public class FivePower extends ChargerRequest implements Serializable {

    @ApiModelProperty(value = "功率比例集合")
    @Valid
    private List<FivePowerResponse> fivePowerResponseList;

    public List<FivePowerResponse> getFivePowerResponseList() {
        return fivePowerResponseList;
    }

    public void setFivePowerResponseList(List<FivePowerResponse> fivePowerResponseList) {
        this.fivePowerResponseList = fivePowerResponseList;
    }

    public FivePower(String imeiNo, List<FivePowerResponse> fivePowerResponseList) {
        this.setImeiNo(imeiNo);
        this.fivePowerResponseList = fivePowerResponseList;
    }

    public String toDataString() {
        AtomicReference<String> dataString = new AtomicReference<>("");
        fivePowerResponseList.sort(Comparator.comparing(FivePowerResponse::getGear));
        fivePowerResponseList.forEach(fivePowerResponse -> {
            dataString.set(dataString + String.format("%05d", fivePowerResponse.getPower()) + String.format("%03d", fivePowerResponse.getTimePercentage()));
        });
        return dataString.toString();
    }
}

確實沒有無參構(gòu)造器,于是就在該實體類上加了個@NoArgsConstructor注解,重啟http接口服務以及業(yè)務層的服務就好了.
或者在實體類中添加無參構(gòu)造器也可以解決:如下文章來源地址http://www.zghlxwxcb.cn/news/detail-523631.html

public FivePower() {
    }

到了這里,關于Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct..........的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • java報錯:Caused by: fasterxml.jackson.core.JsonParseException: Unexpected character (‘c‘ (code 99))

    java報錯:Caused by: fasterxml.jackson.core.JsonParseException: Unexpected character (‘c‘ (code 99))

    出現(xiàn)情況: 使用Swagger或postman發(fā)送含有請求參數(shù)的post請求時: 原始報錯信息: 請求參數(shù)截圖: ?報錯原因: 封裝的JSON參數(shù)沒有按JSON的標準格式 ?解決問題: 將箭頭指向處加上雙引號,即可解決問題!

    2024年02月03日
    瀏覽(22)
  • 04、添加 com.fasterxml.jackson.dataformat -- jackson-dataformat-xml 依賴報錯

    04、添加 com.fasterxml.jackson.dataformat -- jackson-dataformat-xml 依賴報錯

    Correct the classpath of your application so that it contains a single, compatible version of com.fasterxml.jackson.dataformat.xml.XmlMapper 改用其他版本,我沒寫版本號,springboot自己默認的是 2.11.4 版本 成功啟動項目 能成功返回 xml 的響應

    2024年02月10日
    瀏覽(22)
  • 使用SparkStreaming時Jackson報錯java lang ClassNotFoundException com fasterxml jackson core

    java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.Module 或者報錯如下 java lang ClassNotFoundException com fasterxml jackson core 一 Jackson-core和jackson-databind和spring-boot-starter-json這三個依賴缺少其中的一個可能無法正常運行 二 檢查依賴的版本,我今天不光是缺少其中的一個,而且對著mave

    2024年02月16日
    瀏覽(20)
  • java.lang.noclassdeffounderror: com/fasterxml/jackson/core/util/jacksonfeature

    java.lang.noclassdeffounderror: com/fasterxml/jackson/core/util/jacksonfeature

    建議直接查看我的原博 環(huán)境: springboot2.3.10.RELEASE jdk1.8 elasticsearch8.8.1 根據(jù)官網(wǎng),使用es時pom文件需要引入json工具,這里使用了jackson-databind: 但是在運行時報了以下錯誤: 往下翻,發(fā)現(xiàn)是找不到JacksonFeature: 2.Debug 猜想可能是因為沒有導入jackson-core依賴,檢查pom文件,發(fā)現(xiàn)已

    2024年01月19日
    瀏覽(25)
  • 報錯NoClassDefFoundError: com/fasterxml/jackson/core/json/JsonWriteFeature; omitted for conflict with

    報錯NoClassDefFoundError: com/fasterxml/jackson/core/json/JsonWriteFeature; omitted for conflict with

    java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/json/JsonWriteFeature 原因是需要的fasterxml的版本包和其他包里面的舊版本重復而丟棄 運行命令: mvn dependency:tree -Dverbose -Dincludes=*fasterxml*:*databind* 找出所有包含 *fasterxml*:*jackson* 的包: 找到相關jar包的pom引入處(如果父pom中用了 depen

    2024年02月06日
    瀏覽(24)
  • com.fasterxml.jackson.core.JsonParseException: Unrecognized token ‘Alarm‘: was expecting (JSON Stri

    最近在使用httpclient進行post時遠程接口發(fā)生報錯 報錯信息: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unrecognized token \\\'Alarm\\\': was expecting (JSON String, Number, Array, Object or token \\\'null\\\', \\\'true\\\' or \\\'false\\\'); nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized

    2024年02月16日
    瀏覽(21)
  • nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token ‘xxx‘錯誤的詳細解決方法

    nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token ‘xxx‘錯誤的詳細解決方法

    今天寫好 導入hive表 的接口,如下代碼所示: 同時,使用 Ajax 調(diào)用 導入hive表 的接口,如下代碼所示: 啟動項目后,使用 chrome 瀏覽器測試,卻報出如下錯誤: 即 nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token \\\'hiveTableName\\\': was expecting (\\\'true\\\', \\\'false\\\' or \\\'null\\\')

    2024年02月04日
    瀏覽(24)
  • jackson InvalidDefinitionException 異常原因及解決方案

    這是一次在給已有類添加新字段時,因為原來的字段已有構(gòu)造方法,為了避免對老代碼修改產(chǎn)生bug,所以新字段我把老構(gòu)造方法重新復制改了一下,然后就報如下錯誤 java.lang.IllegalArgumentException: com.fasterxml.jackson.databind.exc.InvalidDefinitionException 示例日志如下 1.問題代碼 因為是復

    2024年02月15日
    瀏覽(27)
  • Java 8 datetime type `java.time.LocalDateTime` not supported by default add Module com.fasterxml.jac

    之前的項目好好的,突然報Java 8 date/time type java.time.LocalDateTime not supported by default: add Module “com.fasterxml.jackson.datatype:jackson-datatype-jsr310” to enable handling錯誤, 原因是之前基本上沒有涉及LocalDateTime相關的代碼所有問題一直沒有發(fā)現(xiàn),我們使用springboot的默認的jackson序列化,也沒

    2024年01月21日
    瀏覽(28)
  • Caused by: com...MySQLNonTransientConnectionException: Public Key Retrieval is not allowed 的解決辦法

    Caused by: com...MySQLNonTransientConnectionException: Public Key Retrieval is not allowed 的解決辦法

    關于這個是在新開子工程中遇到的,本工程使用的Mysql 8.x的,拉取項目啟動時遇見問題: “? com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not allowed ” 如下圖: 具體信息: 查了下官網(wǎng)的參數(shù)操作表,如下圖: ?意為: 如果用戶使用了 sha256_passwor

    2024年04月16日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包