有没有办法让Jetty使用我的ApplicationConfig类来指定要包含在应用程序中的资源?
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 :(得分: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();
}