java - 容器加载后运行代码 - 资源加载

标签 java jersey jax-rs

我正在尝试将以下行为添加到我的 Jersey 服务中:

  • 从 WEB-INF 文件夹加载/解析一些文件
  • 将其存储在单例中,以便在应用程序的生命周期中快速访问。

现在我正在工作的解决方案是:

  • 获取资源请求的 ServletContext
  • 对于每个需要访问文件的请求,调用此方法 getSomething(criteria, servletContext)

我必须传递 servletContext ,以便我可以使用它来使用 getRessourceAsStream() 方法加载资源,否则,我无法获得正确的路径。这是我的主要痛点。

我希望能够让服务器在应用程序服务器中准备就绪后自动执行此操作,但我无法找到确切的位置可以完成此操作。这将消除我始终传递 servletContext 的需要,并允许我在一些自定义反序列化器中使用该单例,并使使用该单例的代码更干净。

最佳答案

任何时候您发现自己想要在 Servlet 应用程序启动时做一些工作,请使用 ServletContextListener ,特别是 contextInitialized(ServletContextEvent) 方法。

关于java - 容器加载后运行代码 - 资源加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12676775/

相关文章:

java - 如何使用正则表达式提取此模式的子字符串

java - Jersey .server.model.ModelValidationException

java - <welcome-file-list> 在 Tomcat 中被忽略

json - 列表中的 Jackson JSON,帮助格式化 JSON

java - 如何将 String MVC session 范围 Bean Autowiring 到 RestEasy 客户端拦截器中?

java - 如何更改 ResponseEntity 中的 JSON 响应格式?

java - 作为调用父框架的对话框启动应用程序

java - 使用 ExtJS 和 Jersey 上传文件

jersey - 如何强制 URIBuilder.path(...) 对像 "%AD"这样的参数进行编码?此方法并不总是正确地用百分比编码参数

java - 如何获取简单的 javax.ws REST 服务 url