XPage的会话/应用程序监听器

时间:2016-03-30 12:48:29

标签: xpages

我正在尝试为在9.0.1上运行的xpage应用程序创建一个Session Listener(后来可能是一个应用程序监听器)。谷歌搜索没有提供大量信息,但确实提供了previous SO question

正如问题的答案所说,我创建了一个名为“com.ibm.xsp.core.events.SessionListener”的文件。该文件的唯一内容是全名
< package> .ClassName
实现
com.ibm.xsp.application.events.SessionListener

的类

我已经发现两者不是同一个包装有点奇怪,但我现在就让这个通过。

现在是问题,我在哪里放文件。我的类(目前)在WebContent / WEB-INF / src文件夹中,它被添加到构建路径中。稍后,它们将作为依赖项添加到项目中。现在,我只关心让它在src文件夹中工作。

我试图在名为“services”的WebContent / WEB-INF / src中添加一个“文件夹”并将文件放在那里,没有运气。我试图将services文件夹放入Code / Java文件夹(真的没必要,因为它只是被复制回WEB-INF文件夹)。我试图在WebContent / WEB-INF / services中添加它,没有运气是否该文件夹被添加到构建路径,我真的不确定接下来要尝试什么。

听众代码是:

test.resize(distance(test.begin(), unique(test.begin(), test.end(), [](const auto& a, const auto& b) { return isspace(a) && isspace(b); })));

同样,我想尝试启动并运行应用程序监听器,但我还没有尝试过。

2 个答案:

答案 0 :(得分:2)

在我喜欢使用的 DesignerFacesServlet 实现中,NSF如何挂钩到Domino服务器有一些相似之处。在那种特殊情况下,我正在注册 ServletFactory (我的NSF本地);这会在NSF的/META-INF/services/com.ibm.xsp.adapter.servletFactory文件中注册,该文件存储在Java源代码构建路径中(通常为NSF/Code/JavaNSF/WEB-INF/src,具体取决于您使用的源位置)。该文件包含完全限定的< package.ClassName> ServletFactory

以下是一个实例:https://github.com/edm00se/AnAppOfIceAndFire/blob/master/ODP/Code/Java/META-INF/services/com.ibm.xsp.adapter.servletFactory

文件内容:

com.westeros.factory.ServletFactory

我确信更了解NSF内容加载如何与Domino服务器交互的人可以进一步启发。

答案 1 :(得分:1)

如前所述,它需要位于META-INF文件夹中 - 这有效:

app1.nsf/Code/Java/META-INF/services/com.ibm.xsp.core.events.SessionListener

还有一个跟踪的问题是SPR#RGAUA45NJA,其中没有调用SessionListener上的SessionDestroyed方法。这可能会在下一个9.0.1 FixPack中修复(FP5中没有修复)。