xe: restService для вызова bean занимает 28 секунд - PullRequest
1 голос
/ 06 апреля 2019

У меня есть этот REST сервис XPage в Domino 10.0 RHEL 7:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex" rendered="false">
        <xe:restService id="restService" pathInfo="VCard" state="false">
                <xe:this.service>
                        <xe:customRestService contentType="application/json"
                                serviceBean="net.my.rest.VCardService">
                        </xe:customRestService>
                </xe:this.service>
        </xe:restService>
</xp:view>

Когда я вызываю REST API, сразу запускаются события beforePageLoad и afterPageLoad (я проверил это с помощью оператора print в событиях). Но тогда всегда требуется 28 секунд , прежде чем вызывается компонент. Вот метод renderService в VCardService:

@Override
public void renderService(CustomService service, RestServiceEngine engine) throws ServiceException {
    System.out.println("VCard renderService");
    request = engine.getHttpRequest();
    response = engine.getHttpResponse();
    renderService();
}

Я получаю эту «VCard renderService» в журнал через 28 секунд после события afterPageLoad в XPage. Что вызывает эту задержку?

Одна вещь, о которой я подумал: я должен определить VCardService как bean-компонент в face-config.xml? Примеры REST API, которые я видел, не упоминают об этом.

Обновление 1:

Служебный компонент не является управляемым компонентом, поэтому вам не нужно указывать что-нибудь в вашем лице-config.xml.

https://www.wissel.net/blog/2014/10/custom-rest-service-in-xpages-using-a-service-bean.html

Обновление 2:

Я тестировал с очень простым, в основном пустым классом обслуживания, и задержки не было. Служба vCard использует около 10 JAR-файлов, в основном связанных с JSON, которые хранятся в разделе кода / файлов JFS. Похоже, он тратит много времени на загрузку этих JAR-файлов при каждом вызове bean-компонента. Затем я попытаюсь обновить ODS NSF с 43 до 53, и если это не поможет, поместите JAR-файлы в папку сервера.

Обновление 3:

ODS повышен до 53 (R10), и это не помогло. Замедление исчезает через несколько часов после первого использования API, что является типичным поведением XPage.

Обновление 4:

Удалил файлы JAR из NSF и поместил их в папку server / lib / ext, что тоже не помогло.

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