У меня есть этот 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, что тоже не помогло.