Как проверить тело сообщения с помощью схемы json, используя apache camel в приложении весенней загрузки - PullRequest
0 голосов
/ 23 марта 2020

Я изучаю apache верблюд, я создал один проект весенней загрузки, в котором я хочу проверить тело сообщения с помощью схемы json. В моем проекте я создал маршрут, по которому я извлекаю файл из местоположения на моем компьютере, а затем передаю его следующей конечной точке, где я применил json компонент проверки и затем передал в конечную точку seda, где я использовал вывод.

Код выглядит следующим образом:

@SpringBootApplication
public class ExampleCamelDemoApplication {

    public static void main(String[] args) throws Exception {
        SpringApplication.run(ExampleCamelDemoApplication.class, args);


        CamelContext context = new DefaultCamelContext();

        context.addRoutes(new RouteBuilder() {

            public void configure() throws Exception {

//
                from("file:C:\\sourceFolder?fileName=test.json&noop=true").convertBodyTo(String.class).to("json-validator:classpath:myschema.json")
                .to("seda:end");
            }

        });
        context.start();
        ConsumerTemplate ct = context.createConsumerTemplate();
        System.out.println(ct.receiveBody("seda:end"));
        Thread.sleep(10000);
        context.stop();

    }

}

тест. json содержимое файла:

{
  "id" :1
 }

и myschema. json содержимое файла:

{
  "id" :1
 } 

Я поместил файл myschema. json в папку src / main / resources

Я получаю сообщение об ошибке:

История сообщений (полная история сообщений отключена)

RouteId ProcessorId Процессор истек (мс) [route1] [route1] [из [file: // C:% 5CsourceFolder? FileName = test.json & noop = true]] [2] ... [route1] [to1] [json -validator: classpath: myschema. json] [0]

Stacktrace

java .lang.NullPointerException: пусто в com.networknt.schema. JsonSchema.combineCurrentUriWithIds (JsonSchema. java: 87) ~ [json -schema-validator-1.0.29.jar: na] в com.netwo rknt.schema.JsonSchema. (JsonSchema. java: 75) ~ [json -schema-validator-1.0.29.jar: na] at com.networknt.schema.JsonSchema. (JsonSchema. java: 62 ) ~ [json -schema-validator-1.0.29.jar: na] на com.networknt.schema.JsonSchema. (JsonSchema. java: 57) ~ [json -schema-validator-1.0.29 .jar: na] at com.networknt.schema.JsonSchemaFactory.newJsonSchema (JsonSchemaFactory. java: 253) ~ [json -schema-validator-1.0.29.jar: na]

1 Ответ

0 голосов
/ 24 марта 2020

Либо это ошибка копирования / вставки, либо ваш файл схемы не является JSON схемой , но совпадает с вашими json данными.

Посмотрите на Camel docs для примера файла схемы JSON, который можно использовать с валидатором.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...