简体   繁体   English

HttpMessageNotReadableException:JSON 解析错误:无法构造实例

[英]HttpMessageNotReadableException: JSON parse error: Cannot construct instance

I added below dependency to my web service我在我的网络服务中添加了以下依赖项

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

Now I get below issue in my code don't know what is going wrong.现在我在我的代码中遇到以下问题,不知道出了什么问题。 Befor adding this dependency it was working fine.在添加此依赖项之前,它工作正常。

org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot construct instance of `com.slb.sis.seisstream.job.dropbox.pollers.psdc.model.JobGroup$Job` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('2D_2D_Pre_sd_sds'); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `com.slb.sis.seisstream.job.dropbox.pollers.psdc.model.JobGroup$Job` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('2D_2D_Pre_sd_sds')
at [Source: (PushbackInputStream); line: 41, column: 25] (through reference chain: com.slb.sis.seisstream.job.dropbox.pollers.psdc.model.JobGroup["job"]->java.util.ArrayList[2])
        at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:245)
        at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:227)
        at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:204)
        at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:157)
        at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:130)
        at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:126)
        at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:166)
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:134)
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:908)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)
        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.boot.actuate.web.trace.servlet.HttpTraceFilter.doFilterInternal(HttpTraceFilter.java:90)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        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:99)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        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:92)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        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.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:117)
        at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:106)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        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:200)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        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:200)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
        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:408)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
        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)
Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `com.slb.sis.seisstream.job.dropbox.pollers.psdc.model.JobGroup$Job` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('2D_2D_Pre_sd_sds')
at [Source: (PushbackInputStream); line: 41, column: 25] (through reference chain: com.slb.sis.seisstream.job.dropbox.pollers.psdc.model.JobGroup["job"]->java.util.ArrayList[2])
        at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:63)

below is full pom下面是完整的pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.slb.prosource</groupId>
    <artifactId>jmf</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>ProSource-JMF</name>
    <description>Demo project for Spring Boot</description>

    <repositories>
        <repository>
            <id>1</id>
            <url>http://129.87.7.240:8081/repository/maven-public</url>
        </repository>
        <repository>
            <id>2</id>
            <url>http://163.183.188.25:8081/repository/maven-public</url>
        </repository>
    </repositories>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- <dependency> <groupId>javax.xml</groupId> <artifactId>jaxp-api</artifactId> 
            <version>1.4.2</version> </dependency> -->

        <dependency>
            <groupId>com.slb.psl</groupId>
            <artifactId>PS-Logs</artifactId>
            <version>0.0.2-SNAPSHOT</version>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
            <!--<exclusions> <exclusion> <groupId>org.apache.avalon.framework</groupId> 
                <artifactId>avalon-framework-api</artifactId> </exclusion> <exclusion> <groupId>org.apache.activemq</groupId> 
                <artifactId>activemq-all</artifactId> </exclusion> <exclusion> <groupId>groovy</groupId> 
                <artifactId>groovy-all</artifactId> </exclusion> <exclusion> <groupId>com.google.gson</groupId> 
                <artifactId>gson</artifactId> </exclusion> &lt;!&ndash;<exclusion> <groupId>j2ee</groupId> 
                <artifactId>j2ee</artifactId> </exclusion>&ndash;&gt; </exclusions> -->
        </dependency>

        <!-- indirect -->
        <dependency>
            <groupId>com.slb</groupId>
            <artifactId>ProSource-Tahiti</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.slb.reef</groupId>
            <artifactId>Reef-core</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.slb</groupId>
            <artifactId>ProSource-Coral</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <exclusions>
                <exclusion>
                    <groupId>j2ee</groupId>
                    <artifactId>j2ee</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.slb</groupId>
            <artifactId>ProSource-Registrymgr</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.slb.federator</groupId>
            <artifactId>Federator-Build</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.slb.pss</groupId>
            <artifactId>PS-Seismic</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <exclusions>
                <exclusion>
                    <groupId>com.google.gson</groupId>
                    <artifactId>gson</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>   javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.1</version>
        </dependency>
        <dependency>
            <groupId>xerces</groupId>
            <artifactId>xercesImpl</artifactId>
            <version>2.12.0</version>
        </dependency>

        <!-- indirect End -->


    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <excludes>
                    <!-- <exclude>application.properties</exclude> <exclude>TahitiConfig.xml</exclude> 
                        <exclude>job_definitions.xml</exclude> -->
                </excludes>
            </resource>
        </resources>

    </build>

</project>

I don't understand what is going wrong我不明白出了什么问题

Just add a constructor with a string parameter on your entity/pojo class and jackson should be able to to deserialize your json. 只需在您的实体/ pojo类上添加带有字符串参数的构造函数,杰克逊就应该能够反序列化您的json。

If not working can you edit your post to add the json and the class JobGroup 如果不起作用,可以编辑帖子以添加json和JobGroup

After Martin's suggestion I excluded below dependency and it is working now 在马丁的建议之后,我排除了以下依赖,并且现在可以正常工作了

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>com.fasterxml.jackson.core</groupId>
                    <artifactId>jackson-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.fasterxml.jackson.core</groupId>
                    <artifactId>jackson-databind</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.fasterxml.jackson.core</groupId>
                    <artifactId>jackson-annotations</artifactId>
                </exclusion>
                <exclusion>
                    <artifactId>jackson-dataformat-xml</artifactId>
                    <groupId>com.fasterxml.jackson.dataformat</groupId>
                </exclusion>
            </exclusions>
        </dependency>

Thanks Martin for prompt response 感谢Martin的迅速回应

The class should have the following该类应具有以下内容

  1. Empty Constructor (without any arguments)空构造函数(不带任何参数)
  2. Setter functions (for the field variables). Setter 函数(用于字段变量)。

I use lombok and had only @Getter , @Setter , @AllArgsConstructor .我使用@Getter并且只有@Getter@Setter@AllArgsConstructor But I was still getting this error.但我仍然收到此错误。

The code for mapping creates an object first using the empty constructor ( @NoArgsConstructor ) first and then populates the values using the setters.映射代码首先使用空构造函数 ( @NoArgsConstructor ) 创建一个对象,然后使用 setter 填充值。

So I added the @NoArgsConstrutor (which is nothing but lombok's way of adding an empty constructor) and it worked perfectly.所以我添加了@NoArgsConstrutor (这只不过是@NoArgsConstrutor添加空构造函数的方式)并且它完美地工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 JSON解析错误:无法构造类的实例 - JSON parse error: Can not construct instance of class 尝试从角度插入数据到Spring Boot API时出现“ JSON解析错误:无法构造实例”错误 - “JSON parse error: Cannot construct instance of” error when trying to insert data from angular to spring boot api HttpMessageNotReadableException:JSON 解析错误:无法从字符串反序列化“int”类型的值 - HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `int` from String JSON解析错误:无法构造`com.example.greetapp.domain.User`的实例 - JSON parse error: Cannot construct instance of `com.example.greetapp.domain.User` JSON解析错误:处理一对一关系时无法构造“自定义对象”的实例 - JSON parse error: Cannot construct instance of 'Custom object' while dealing with one to one relation “JSON 解析错误:无法构造实例(尽管至少存在一个 Creator):无法从 Object 值反序列化 - SpringBoot - "JSON parse error: Cannot construct instance of (although at least one Creator exists): cannot deserialize from Object value - SpringBoot HttpMessageNotReadableException:JSON 解析错误:无法识别的令牌“嬀崀” - HttpMessageNotReadableException: JSON parse error: Unrecognized token '嬀崀' SpringBoot - HttpMessageNotReadableException:JSON 解析错误:java.net.SocketTimeoutException - SpringBoot - HttpMessageNotReadableException: JSON parse error: java.net.SocketTimeoutException JSON 解析错误:无法构造`com.tess4j.rest.model.Image`的实例(尽管至少存在一个创建者): - JSON parse error: Cannot construct instance of `com.tess4j.rest.model.Image` (although at least one Creator exists): Json反序列化错误Spring Boot测试-无法构造实例 - Json Deserialization Error Spring Boot Testing - Cannot construct the instance
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM