用于单元测试的嵌入式Jetty

时间:2014-05-26 08:53:32

标签: java spring unit-testing jersey embedded-jetty

我想在我的测试类中启动我的应用程序来测试它。我已经为我的测试编写了一个基类,并且有一个像这样的方法:

public static void startServerIfRequired() {
   if (server != null) {
      return;
   }
   server = new Server(TEST_PORT);
   ServletHolder sh = new ServletHolder(ServletContainer.class);

   sh.setInitParameter("com.sun.jersey.config.property.resourceConfigClass", "com.sun.jersey.api.core.PackagesResourceConfig");
   sh.setInitParameter("com.sun.jersey.config.property.packages", "org.gogo.rena.rest");
   sh.setInitParameter("com.sun.jersey.api.json.POJOMappingFeature", "true");
   ServletContextHandler context = new ServletContextHandler(server, "/", ServletContextHandler.SESSIONS);
   context.setResourceBase("src/main/webapp");
   context.setContextPath("/");
   context.addServlet(sh, "/*");

   server.setHandler(context);
   try {
      server.setStopAtShutdown(true);
      server.start();
     //server.join(); 
   } catch (Exception e) {
     fail("Error has occurred while starting! Error is as follows: " + e.getMessage());
  }
}

我在测试包中没有任何资源。我在Spring应用程序中使用Jersey。我的休息包在gogo.rena.rest下。服务器不会抛出错误,但当我尝试获取任何URL时,我收到404错误?

编辑:当我查看日志时,它说:

...
Server - Started @20756ms

并且它还创建了我的休息类作为根资源。

0 个答案:

没有答案