2015-10-24 1 views
0

Есть ли способ заставить Jetty использовать класс ApplicationConfig, чтобы указать, какие ресурсы будут включены в приложение?Программно использовать класс ApplicationConfig для указания ресурсов REST в Jetty Embedded

ApplicationConfig.java:

@javax.ws.rs.ApplicationPath("api") 
public class ApplicationConfig extends Application { 

    @Override 
    public Set<Class<?>> getClasses() { 
    Set<Class<?>> resources = new java.util.HashSet<>(); 
    addRestResourceClasses(resources); 
    return resources; 
    } 

    /** 
    * Do not modify addRestResourceClasses() method. 
    * It is automatically populated with 
    * all resources defined in the project. 
    * If required, comment out calling this method in getClasses(). 
    */ 
    private void addRestResourceClasses(Set<Class<?>> resources) { 
    resources.add(rest.Admin.class); 
    resources.add(rest.User.class); 
    resources.add(security.JWTAuthenticationFilter.class); 
    resources.add(security.Login.class); 
    resources.add(security.NotAuthorizedExceptionMapper.class); 
    resources.add(security.RolesAllowedFilter.class); 
    } 

} 

И мой HelloWorld молы пример: Голые в виду, что этот пример делает не использовать ApplicationConfig, но вместо метода setInitParameter.

public static void main(String[] args) throws Exception { 

     Server server = new Server(8080); 

     ServletHolder servletHolder = new ServletHolder(org.glassfish.jersey.servlet.ServletContainer.class); 
     servletHolder.setInitParameter("com.sun.jersey.config.property.resourceConfigClass", "com.sun.jersey.api.core.PackagesResourceConfig"); 
     servletHolder.setInitParameter(ServerProperties.PROVIDER_PACKAGES, "rest");//Set the package where the services reside 
     servletHolder.setInitParameter("com.sun.jersey.api.json.POJOMappingFeature", "true"); 
     ServletContextHandler contextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS); 
     server.setHandler(contextHandler); 
     contextHandler.addServlet(servletHolder, "/api/*"); 

     server.start(); 
     server.join(); 
    } 

ответ

0

Законченное запуск приложения через с Application.java конфигурационный файл вместо:

public static void main(String[] args) throws Exception { 


     Server server = new Server(8082); 

     ServletHolder servletHolder = new ServletHolder(org.glassfish.jersey.servlet.ServletContainer.class); 
     servletHolder.setInitParameter("javax.ws.rs.Application", ApplicationConfig.class.getName()); 
     ServletContextHandler contextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS); 
     contextHandler.setContextPath("/"); 
     contextHandler.addServlet(servletHolder, "/*"); 
     server.setHandler(contextHandler); 

     server.start(); 
     server.join(); 

    } 

 Смежные вопросы

  • Нет связанных вопросов^_^