我正在尝试为在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); })));
同样,我想尝试启动并运行应用程序监听器,但我还没有尝试过。
答案 0 :(得分:2)
在我喜欢使用的 DesignerFacesServlet 实现中,NSF如何挂钩到Domino服务器有一些相似之处。在那种特殊情况下,我正在注册 ServletFactory (我的NSF本地);这会在NSF的/META-INF/services/com.ibm.xsp.adapter.servletFactory
文件中注册,该文件存储在Java源代码构建路径中(通常为NSF/Code/Java
或NSF/WEB-INF/src
,具体取决于您使用的源位置)。该文件包含完全限定的< package.ClassName> 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中没有修复)。