Search code examples
spring-bootmicronaut

Spring Boot / Micronaut - Jacksondatabind error on windows


I am trying to run a simple sample of Micronaut/Spring Boot on Windows via Gradle and am getting the following exception:


    "C:\Program Files\Java\jdk1.8.0_171\bin\java.exe" -javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2018.1.5\lib\idea_rt.jar=53492:C:\Program Files\JetBrains\IntelliJ IDEA 2018.1.5\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_171\jre\lib\charsets.jar;com.home.examples.poster.Application
17:45:20.913 [main] ERROR io.micronaut.runtime.Micronaut - Error starting Micronaut server: I/O exception occurred reading [application.json]: Unexpected character (''' (code 39)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
 at [Source: (ByteArrayInputStream); line: 1, column: 2]
io.micronaut.context.exceptions.ConfigurationException: I/O exception occurred reading [application.json]: Unexpected character (''' (code 39)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
 at [Source: (ByteArrayInputStream); line: 1, column: 2]
    at io.micronaut.context.env.AbstractPropertySourceLoader.loadProperties(AbstractPropertySourceLoader.java:98)
    at io.micronaut.context.env.AbstractPropertySourceLoader.load(AbstractPropertySourceLoader.java:66)
    at io.micronaut.context.env.DefaultEnvironment.loadPropertySourceFromLoader(DefaultEnvironment.java:487)
    at io.micronaut.context.env.DefaultEnvironment.readPropertySourceList(DefaultEnvironment.java:430)
    at io.micronaut.context.DefaultApplicationContext$RuntimeConfiguredEnvironment.readPropertySourceList(DefaultApplicationContext.java:542)
    at io.micronaut.context.env.DefaultEnvironment.readPropertySources(DefaultEnvironment.java:355)
    at io.micronaut.context.env.DefaultEnvironment.start(DefaultEnvironment.java:246)
    at io.micronaut.context.env.DefaultEnvironment.start(DefaultEnvironment.java:66)
    at io.micronaut.context.DefaultApplicationContext.startEnvironment(DefaultApplicationContext.java:184)
    at io.micronaut.context.DefaultApplicationContext.start(DefaultApplicationContext.java:142)
    at io.micronaut.runtime.Micronaut.start(Micronaut.java:67)
    at io.micronaut.runtime.Micronaut.run(Micronaut.java:274)
    at io.micronaut.runtime.Micronaut.run(Micronaut.java:260)
    at com.home.examples.poster.Application.main(Application.java:8)
Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character (''' (code 39)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
 at [Source: (ByteArrayInputStream); line: 1, column: 2]
    at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1804)
    at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:693)
    at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:591)
    at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._handleUnexpectedValue(UTF8StreamJsonParser.java:2630)
    at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._nextTokenNotInObject(UTF8StreamJsonParser.java:832)
    at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:729)
    at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4141)
    at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4000)
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3084)
    at io.micronaut.jackson.env.JsonPropertySourceLoader.processInput(JsonPropertySourceLoader.java:56)
    at io.micronaut.context.env.AbstractPropertySourceLoader.read(AbstractPropertySourceLoader.java:111)
    at io.micronaut.context.env.AbstractPropertySourceLoader.loadProperties(AbstractPropertySourceLoader.java:96)
    ... 13 common frames omitted

Process finished with exit code 1

I have seen this error along with Spring Boot 2.1+ and don't know where/why it is happening as it "should" be reading from application.yml. debugging i see where it is throwing the exception but its not a a file i even have in the project to read. even if i make "application.json" it reads the file but still fails with the above error.

libs i have:

annotationProcessor "io.micronaut:micronaut-inject-java"
compile "io.micronaut:micronaut-http-client"
compile "io.micronaut:micronaut-http-server-netty"
compile "io.micronaut:micronaut-inject"
compile "io.micronaut:micronaut-runtime"
compileOnly "io.micronaut:micronaut-inject-java"
runtime "ch.qos.logback:logback-classic:1.2.3"
testCompile "junit:junit:4.12"
testCompile "io.micronaut:micronaut-inject-java"
jackson-databind is 2.9.8 (included in the micronaut deps)

Solution

  • so ended up figuring it out after seeing a comment on another page about using JSON for spring application setup.

    turns out i had a environment variable SPRING_APPLICATION_JSON setup that was malformed thus it was throwing this error. once i took that out and restarted my IDE everything is working good now.