JsonSchema2pojo Проблема с десериализацией Джексона

Я пытаюсь использовать jsonSchema2pojo генерирующую библиотеку POJO, и мне это тоже удается. Но проблема, с которой я сталкиваюсь, - это исключение десериализации, когда я пытаюсь создать карту с помощью typeReferencing сгенерированного rootClass, т.е. EsRootDoc ​​(в приведенном ниже коде).

Вот код, который я тестирую:

JCodeModel codeModel = new JCodeModel();
String classLocation = System.getProperty("user.dir")+ "/src/main/java";
GenerationConfig config = new DefaultGenerationConfig() {
                @Override
                public boolean isGenerateBuilders() { // set config option by overriding method
                    return true;
                }

                @Override
                public SourceType getSourceType() {
                    return SourceType.JSON;
                }
final RuleFactory ruleFactory = new RuleFactory(config,
            new Jackson2Annotator(config), new SchemaStore());

            final SchemaMapper mapperSchema = new SchemaMapper(ruleFactory,new SchemaGenerator());

    mapperSchema.generate(codeModel, "EsRootDoc",           "com.tech.EnrichmentService.EnrichmentController.tempJsonToClass", json);

codeModel.build(new File(classLocation));

ObjectMapper mapper = new ObjectMapper();
try{

     p = mapper.readValue(json,new TypeReference<com.tech.EnrichmentService.EnrichmentController.tempJsonToClass.EsRootDoc>() {});

    }
    catch(Exception e){
    e.printStackTrace();
    }

Исключение :

  com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_ARRAY token
 at [Source: java.io.StringReader@72b070e8; line: 1, column: 15974] (through reference chain: com.tech.EnrichmentService.EnrichmentController.tempJsonToClass.EsRootDoc["svo"]->java.util.ArrayList[1]->com.tech.EnrichmentService.EnrichmentController.tempJsonToClass.Svo["svoMetadata"]->com.tech.EnrichmentService.EnrichmentController.tempJsonToClass.SvoMetadata["event"])

Теперь, если я создаю классы здесь, а затем набираю ссылку на один и тот же сгенерированный rootClass , как мне получить непохожий json на проблему Pojo ??

Отредактировано (добавлен json):

{
  "coref": [
    {
      "endOffset": 260,
      "coreference": "Hind Times",
      "entity": "them",
      "beginOffset": 256
    }
  ],

  "upCategory": "News",
  "dateFacet": "2016-06-14T04:14:06Z",
  "svo": [
    {
      "clause": "kids go missing from ? forest",
      "svoMetadata": {
        "sentenceID": 1,
        "clauseId": 2,
        "svoId": 0
      },
      "objectPOS": "IN POS NN NN",
      "isRelatedKeySVO": false,
      "subjectPOS": " NNS",
      "subject": "kids",
      "confidence": 0.786255231995661,
      "verb": "missing",
      "verbPOS": "VBG",
      "source": "OpenIE4",
      "isKeySVO": true,
      "object": "from ' forest toilet"
    },
    {
      "clause": "lack of toilets forced them to defacate in the open",
      "svoMetadata": {
        "sentenceID": 1,
        "clauseId": 0,
        "event": [
          "forced"
        ],
        "svoId": 0,
        "verbType": "event,"
      }
    }
  ],
    "projectName": "guest",
  "uniqueId": "575f848ee4b0011ac0e1ef091"
}

person Kimchy    schedule 20.06.2017    source источник
comment
Как выглядит ваш json? Пожалуйста, добавьте строку json к вопросу   -  person Davis Molinari    schedule 20.06.2017
comment
@davis molinari, пожалуйста, проверьте, я отредактировал свой вопрос и добавил json в конце моего запроса.   -  person Kimchy    schedule 24.06.2017
comment
Привет всем, я только что вернулся к этой проблеме через некоторое время, кто-нибудь хотел бы прокомментировать вышеуказанную проблему, я также пытался удалить все файлы pojo при каждом запуске, и более старых файлов не существует, и выполняется целый новый процесс для создания нового Pojo и typeReference to новый сгенерированный EsRootDoc. любое предложение будет оценено, так как у меня нет дальнейших идей? Почувствуйте, как разместить запрос на странице проблемы jsonSchema2Pojo github сейчас @joelittlejohn   -  person Kimchy    schedule 21.07.2017
comment
Раньше не использовал jsonSchema2pojo, но ваш classLocation выглядит подозрительно; выглядит как папка sources (System.getProperty("user.dir")+ "/src/main/java"), в то время как любой класс/байт-код, сгенерированный во время выполнения, вероятно, должен быть помещен в папку classes (например, target/classes), чтобы он был виден загрузчики классов (т. е. включенные в путь к классам среды выполнения). (Но полученное вами исключение больше похоже на неожиданный синтаксис JSON, чем на проблему «отсутствующего класса».)   -  person Janaka Bandara    schedule 25.11.2017
comment
да, спасибо, Джанака, вы правы, это не проблема отсутствия класса, поскольку класс загружается, а только один раз, но поскольку ввод json изменяется во время выполнения, и новый класс создается с использованием библиотеки jsonSchema2Pojo, но уже загруженный класс должен быть заменен на новый сгенерированный класс. Я создал файлы .class для вновь созданных файлов .java и заменил старые файлы .class в целевой папке. В src/main/java генерируются только файлы .java, которые также компилируются в целевое местоположение.   -  person Kimchy    schedule 28.11.2017