问题描述
我想在 webapp 开始加载之前在 webapp 内部(不是从服务器)加载一个实现 MappedLoginService
的 bean。
有什么办法吗?
我尝试在 webapp post-construct 和 webapp 应用程序类 (javax.ws.rs.Application
) 中加载 bean,但没有成功。
解决方法
将初始化放在 WEB-INF/jetty-web.xml
文件中。
这将在 WebApp 初始化期间加载它,在 Servlet 层初始化开始之前。
,我按照 Joakim 的回答创建了一个 WEB-INF/jetty-web.xml
文件并且它起作用了。我只想扩展答案,添加一个示例 jetty-web.xml,在 servlet 启动之前打印一些内容:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure id="context" class="org.eclipse.jetty.webapp.WebAppContext">
<Get class="java.lang.System" name="out">
<Call name="println">
<Arg>Hello world!</Arg>
</Call>
</Get>
</Configure>
有关 jetty-web.xml 语法 here 的更多信息。