xe:restService花费28秒调用bean

时间:2019-04-06 14:42:25

标签: java xpages lotus-domino xpages-extlib

我在Domino 10.0 RHEL 7中具有此REST服务XPage:

<?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时,会立即触发beforePageLoadafterPageLoad事件(我通过在事件中使用print语句来对此进行检查)。但是,调用该bean总是需要 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();
}

在XPage中的afterPageLoad事件发生后28秒,我将此“ VCard renderService”记录到日志中。是什么原因造成这种延迟?

我想到的一件事:我应该在Faces-config.xml中将VCardService定义为bean吗?我见过的REST API示例没有提及。

更新1:

  

服务Bean不是托管Bean,因此您无需指定   您faces-config.xml中的所有内容。

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

更新2:

我使用非常简单的,基本上为空的服务类进行了测试,并且没有延迟。 vCard服务正在使用NSF Code / Jars部分中存储的大约10个主要与JSON相关的JAR。每次调用bean似乎花费大量时间来加载那些JAR。接下来,我将尝试将NSF的ODS从43升级到53,如果这样做没有帮助,则将JAR放置到服务器文件夹中。

更新3:

ODS升级到53(R10),但没有帮助。第一次使用API​​后,这种缓慢现象消失了几个小时,这是典型的XPage行为。

更新4:

从NSF中删除了JAR,并将它们放在服务器的/ lib / ext文件夹中。

0 个答案:

没有答案