【发布时间】:2012-01-27 15:58:57
【问题描述】:
我有一个客户端服务器应用程序。服务器由带有 jersey 的 restful 服务组成,并部署在 tomcat 7 上。实际上,我需要在客户端访问服务之前创建服务的上下文(读取一些大文件)。是否可以创建我的 webapp 的主类?
【问题讨论】:
标签: java web-applications tomcat client-server mainclass
我有一个客户端服务器应用程序。服务器由带有 jersey 的 restful 服务组成,并部署在 tomcat 7 上。实际上,我需要在客户端访问服务之前创建服务的上下文(读取一些大文件)。是否可以创建我的 webapp 的主类?
【问题讨论】:
标签: java web-applications tomcat client-server mainclass
JavaEE 中的 Web 应用程序没有桌面应用程序那样的“主类”;当然,执行必须从某处的 main 方法开始,但它将由 Web 容器(在您的情况下为 Tomcat)管理并且您无法触及。
您可以做的是创建一个 servlet,它使用其 init 方法在应用程序上下文中预加载您需要的数据(假设所有客户端的数据都是相同的,理想情况下,它不会被他们修改)。此外,在 servlet 配置中,您指定 servlet 必须在启动时加载,这样可以确保数据将在应用程序开始时加载一次,并且所有客户端都可以访问它来自应用程序上下文。
编辑:
在 Servlet 规范 (2.3+) 的更新版本中,首选方法是使用上下文侦听器,有关详细信息,请参阅此 answer。
【讨论】: