【问题标题】:How can I bootstrap Jersey REST service server?如何引导 Jersey REST 服务服务器?
【发布时间】:2016-04-08 14:03:25
【问题描述】:

我参与了一个项目,该项目基本上只是一个 REST 服务,它为 Web 客户端提供一些功能。但是,我还看不到这些服务正在进行任何引导 - 就像根本没有......

特别是我必须为服务器及其服务设置文件系统。因此,我正在寻找一种方法来控制 Web 应用程序,因为服务器正在启动并且它正在加载 REST 资源:

import javax.ws.rs.Path;
import com.sun.jersey.spi.resource.Singleton;

@Path("/")
@Singleton
public class EnrichmentResource {
    // ...
}

我该怎么做?我只能找到这样的simple examples,其中定义了 REST 控制器但没有引导示例。

【问题讨论】:

  • 你有扩展 ResourceConfig 的类吗?
  • @vincent 我开始意识到,写这篇文章的人通过简单地制作 static 以便在应用程序启动时加载它们来绕过引导程序 O_o 我对此没有其他解释我明白了.. 但是没有,整个项目中似乎没有类扩展 ResourceConfig。
  • @displayname,我建议从 RestEasy mkyong.com/webservices/jax-rs/resteasy-hello-world-example 开始,然后查看该页面中的 Alternative REST Service Registration 主题
  • @TheCoder 这显示了如何手动初始化资源。有没有办法让资源自动初始化,但发生之前只做一些其他的初始化工作?
  • @displayname,你的意思是像Listeners..?如果可能,详细说明初始化前的内容..

标签: java rest jersey


【解决方案1】:

JAX-RS 本身没有“预先进入”部分。但是,在任何 JEE 应用程序中,您始终可以定义 WebListener:

@WebListener
public class MyListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println( "context initialized" );
    }
}

contextInitialized() 方法将在您的 REST 服务调用任何内容之前调用。请记住,JAX-RS 仍然构建在 servlet 框架之上。

【讨论】:

  • 这对我有用!正是我正在寻找的 - 我希望这实际上是做我想做的事的正确地方,但至少现在我可以做到 何时 我想要:D
猜你喜欢
  • 1970-01-01
  • 2015-06-04
  • 1970-01-01
  • 2015-01-05
  • 2010-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多