Gentics Mesh Schema не может быть найден после его создания - PullRequest
0 голосов
/ 03 ноября 2019

Я могу создать новую схему, используя MeshRestClient, и получить успешный ответ.

Хотя сразу после этого я пытаюсь создать узел, используя схему, и получаю исключение об отсутствии ссылочной схемы.

Выходные данные журнала при создании схемы -

12:30:13.177 [] INFO  [vert.x-worker-thread-9] [JULLogDelegate.java:167] - 127.0.0.1 - POST /api/v1/schemas/f0ee56b03d514a5fae56b03d519a5f04 HTTP/1.1 201 835 - 20 ms
12:30:13.179 [] INFO  [main] [MeshService.java:81] - created schema - uuid: f0ee56b03d514a5fae56b03d519a5f04, name: form_definition

Затем при создании нового узла с использованием этой ссылки на схему -

Caused by: com.gentics.mesh.rest.client.MeshRestClientMessageException: Error:404 in POST /api/v1/demo/nodes : Not Found Info: Object with uuid "f0ee56b03d514a5fae56b03d519a5f04" could not be found.

Я попытался задать имя схемы и ссылку на схему в NodeCreateRequest, но оба жалуются.

    public MeshRequest<NodeResponse> saveFormDefinition(Map<String, Object> form) {
        NodeCreateRequest nodeCreateRequest = new NodeCreateRequest()
                .setSchema(formDefinitionSchema.toReference())
                .setLanguage("en")
                .setParentNodeUuid(formsFolderNode);
        String formName = (String)form.get("name");
        nodeCreateRequest.getFields().putString("name", formName);
        return this.client.createNode(this.meshProjectName, nodeCreateRequest);
    }

Есть ли период времени, который мне нужно подождать, пока он не станет доступен? Или какие-то другие мысли?

Спасибо!

1 Ответ

1 голос
/ 04 ноября 2019

Проблема заключалась в том, что я никогда не подписывался на запрос assignSchemaToProject -

client.assignSchemaToProject(meshProjectName, response.getUuid())

Поэтому после подписки запрос был выполнен и теперь доступен для CreateNodeRequest.

client.assignSchemaToProject(meshProjectName, response.getUuid()).blockingGet();
...