/** * Add a Jersey resource package. * @param packageName The Java package name containing the Jersey resource. * @param pathSpec The path spec for the servlet */ public void addJerseyResourcePackage(final String packageName, final String pathSpec) { LOG.info("addJerseyResourcePackage: packageName=" + packageName + ", pathSpec=" + pathSpec); ResourceConfig application = new ResourceConfig().packages(packageName); final ServletHolder sh = new ServletHolder(new ServletContainer(application)); webAppContext.addServlet(sh, pathSpec); }
private void rawRegisterServlets() throws ServletException, NamespaceException, InterruptedException { logger.info("JERSEY BUNDLE: REGISTERING SERVLETS"); logger.info("JERSEY BUNDLE: HTTP SERVICE = " + httpService.toString()); // TODO - temporary workaround // This is a workaround related to issue JERSEY-2093; grizzly (1.9.5) needs to have the correct context // classloader set ClassLoader myClassLoader = getClass().getClassLoader(); ClassLoader originalContextClassLoader = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader(myClassLoader); httpService.registerServlet("/jersey-http-service", new ServletContainer(), getJerseyServletParams(), null); } finally { Thread.currentThread().setContextClassLoader(originalContextClassLoader); } // END of workaround - after grizzly updated to the recent version, only the inner call from try block will remain: // httpService.registerServlet("/jersey-http-service", new ServletContainer(), getJerseyServletParams(), null); sendAdminEvent(); logger.info("JERSEY BUNDLE: SERVLETS REGISTERED"); }
@SuppressWarnings("unchecked") public void start() { Set<Object> controllers = new HashSet<>(); controllers.add(new DataTypesController(actions.get(GetDataTypes.class))); controllers.add(new TransferServicesController(actions.get(GetTransferServices.class))); controllers.add( new TransferController( actions.get(CreateTransferJob.class), actions.get(GenerateServiceAuthData.class), actions.get(ReserveWorker.class), actions.get(GetReservedWorker.class), actions.get(StartTransferJob.class), actions.get(GetTransferJob.class))); // Create a Jersey JAX-RS Application (resourceConfig), add the actions, and register it with // the Jetty transport. ResourceConfig resourceConfig = new ResourceConfig(); // resourceConfig.register(JacksonFeature.class) resourceConfig.registerInstances(controllers); ServletContainer servletContainer = new ServletContainer(resourceConfig); jettyTransport.registerServlet("/api/*", servletContainer); } }
private void initApi(Config config, ServletContextHandler servletHandler) { servletHandler.addServlet(new ServletHolder(new AsyncSocketServlet()), "/api/socket"); if (config.hasKey("media.path")) { ServletHolder servletHolder = new ServletHolder(DefaultServlet.class); servletHolder.setInitParameter("resourceBase", config.getString("media.path")); servletHolder.setInitParameter("dirAllowed", config.getString("media.dirAllowed", "false")); servletHolder.setInitParameter("pathInfoOnly", "true"); servletHandler.addServlet(servletHolder, "/api/media/*"); servletHandler.addFilter(MediaFilter.class, "/api/media/*", EnumSet.allOf(DispatcherType.class)); } ResourceConfig resourceConfig = new ResourceConfig(); resourceConfig.registerClasses(JacksonFeature.class, ObjectMapperProvider.class, ResourceErrorHandler.class); resourceConfig.registerClasses(SecurityRequestFilter.class, CorsResponseFilter.class); resourceConfig.packages(ServerResource.class.getPackage().getName()); servletHandler.addServlet(new ServletHolder(new ServletContainer(resourceConfig)), "/api/*"); }
private static ServletContainer createJerseyServlet() throws IOException { ResourceConfig resourceConfig = new ResourceConfig(); resourceConfig.register(JacksonFeature.class); resourceConfig.register(new ApiResource()); return new ServletContainer(resourceConfig); } }
.register(DefaultExceptionMapper.class); ServletHolder jerseyServlet = new ServletHolder(new ServletContainer(resourceConfig)); jerseyServlet.setInitOrder(0); context.addServlet(jerseyServlet, STORM_API_URL_PREFIX + "*");
/** * Add new servlet according to {@link Application} subclass with {@link ApplicationPath} annotation or existing * {@code servlet-mapping}. */ private static void addServletWithApplication(final ServletContext context, final Class<? extends Application> clazz, final Set<Class<?>> defaultClasses) throws ServletException { final ApplicationPath ap = clazz.getAnnotation(ApplicationPath.class); if (ap != null) { // App is annotated with ApplicationPath final ResourceConfig resourceConfig = ResourceConfig.forApplicationClass(clazz, defaultClasses) .addProperties(Utils.getContextParams(context)); final ServletContainer s = new ServletContainer(resourceConfig); final ServletRegistration.Dynamic dsr = context.addServlet(clazz.getName(), s); dsr.setAsyncSupported(true); dsr.setLoadOnStartup(1); final String mapping = createMappingPath(ap); if (!mappingExists(context, mapping)) { dsr.addMapping(mapping); LOGGER.log(Level.CONFIG, LocalizationMessages.JERSEY_APP_REGISTERED_MAPPING(clazz.getName(), mapping)); } else { LOGGER.log(Level.WARNING, LocalizationMessages.JERSEY_APP_MAPPING_CONFLICT(clazz.getName(), mapping)); } } }
/** * Add new servlet according to {@link Application} subclass with {@link ApplicationPath} annotation or existing * {@code servlet-mapping}. */ private static void addServletWithApplication(final ServletContext context, final Class<? extends Application> clazz, final Set<Class<?>> defaultClasses) throws ServletException { final ApplicationPath ap = clazz.getAnnotation(ApplicationPath.class); if (ap != null) { // App is annotated with ApplicationPath final ResourceConfig resourceConfig = ResourceConfig.forApplicationClass(clazz, defaultClasses) .addProperties(Utils.getContextParams(context)); final ServletContainer s = new ServletContainer(resourceConfig); final ServletRegistration.Dynamic dsr = context.addServlet(clazz.getName(), s); dsr.setAsyncSupported(true); dsr.setLoadOnStartup(1); final String mapping = createMappingPath(ap); if (!mappingExists(context, mapping)) { dsr.addMapping(mapping); LOGGER.log(Level.CONFIG, LocalizationMessages.JERSEY_APP_REGISTERED_MAPPING(clazz.getName(), mapping)); } else { LOGGER.log(Level.WARNING, LocalizationMessages.JERSEY_APP_MAPPING_CONFLICT(clazz.getName(), mapping)); } } }
new ServletContainer(new WebUiPageTree(dispatcher))); servletHolder.setInitOrder(1); servletContextHandler.addServlet(servletHolder, "/*"); new ServletContainer(new AmRestApi(dispatcher))); restHolder.setInitOrder(2); servletContextHandler.addServlet(restHolder, "/rest/*");
} else { final ServletContainer servlet = new ServletContainer(resourceConfig); final ServletRegistration.Dynamic dynamicRegistration = context.addServlet(clazz.getName(), servlet); dynamicRegistration.setAsyncSupported(true);
} else { final ServletContainer servlet = new ServletContainer(resourceConfig); final ServletRegistration.Dynamic dynamicRegistration = context.addServlet(clazz.getName(), servlet); dynamicRegistration.setAsyncSupported(true);
ServletHolder sh = new ServletHolder(new ServletContainer(application));
ServletHolder sh = new ServletHolder(new ServletContainer(app));
/** * Enhance default servlet (named {@link Application}) configuration. */ private static void addServletWithDefaultConfiguration(final ServletContext context, final Set<Class<?>> classes) throws ServletException { ServletRegistration registration = context.getServletRegistration(Application.class.getName()); if (registration != null) { final Set<Class<?>> appClasses = getRootResourceAndProviderClasses(classes); final ResourceConfig resourceConfig = ResourceConfig.forApplicationClass(ResourceConfig.class, appClasses) .addProperties(getInitParams(registration)) .addProperties(Utils.getContextParams(context)); if (registration.getClassName() != null) { // class name present - complete servlet registration from container point of view Utils.store(resourceConfig, context, registration.getName()); } else { // no class name - no complete servlet registration from container point of view final ServletContainer servlet = new ServletContainer(resourceConfig); registration = context.addServlet(registration.getName(), servlet); ((ServletRegistration.Dynamic) registration).setLoadOnStartup(1); if (registration.getMappings().isEmpty()) { // Error LOGGER.log(Level.WARNING, LocalizationMessages.JERSEY_APP_NO_MAPPING(registration.getName())); } else { LOGGER.log(Level.CONFIG, LocalizationMessages.JERSEY_APP_REGISTERED_CLASSES(registration.getName(), appClasses)); } } } }
/** * Enhance default servlet (named {@link Application}) configuration. */ private static void addServletWithDefaultConfiguration(final ServletContext context, final Set<Class<?>> classes) throws ServletException { ServletRegistration registration = context.getServletRegistration(Application.class.getName()); if (registration != null) { final Set<Class<?>> appClasses = getRootResourceAndProviderClasses(classes); final ResourceConfig resourceConfig = ResourceConfig.forApplicationClass(ResourceConfig.class, appClasses) .addProperties(getInitParams(registration)) .addProperties(Utils.getContextParams(context)); if (registration.getClassName() != null) { // class name present - complete servlet registration from container point of view Utils.store(resourceConfig, context, registration.getName()); } else { // no class name - no complete servlet registration from container point of view final ServletContainer servlet = new ServletContainer(resourceConfig); registration = context.addServlet(registration.getName(), servlet); ((ServletRegistration.Dynamic) registration).setLoadOnStartup(1); if (registration.getMappings().isEmpty()) { // Error LOGGER.log(Level.WARNING, LocalizationMessages.JERSEY_APP_NO_MAPPING(registration.getName())); } else { LOGGER.log(Level.CONFIG, LocalizationMessages.JERSEY_APP_REGISTERED_CLASSES(registration.getName(), appClasses)); } } } }
private ServletHolder getRestServlet() { final ResourceConfig rc = new ResourceConfig().packages("org.apache.accumulo.monitor.rest") .register( new LoggingFeature(java.util.logging.Logger.getLogger(this.getClass().getSimpleName()))) .register(JacksonFeature.class); return new ServletHolder(new ServletContainer(rc)); }
private ServletHolder getViewServlet() { final ResourceConfig rc = new ResourceConfig().packages("org.apache.accumulo.monitor.view") .register( new LoggingFeature(java.util.logging.Logger.getLogger(this.getClass().getSimpleName()))) .register(FreemarkerMvcFeature.class) .property(MvcFeature.TEMPLATE_BASE_PATH, "/org/apache/accumulo/monitor/templates"); return new ServletHolder(new ServletContainer(rc)); }
public static Server startJetty(int port, Object binding) { ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); context.setContextPath("/"); Server jettyServer = new Server(port); jettyServer.setHandler(context); ResourceConfig rc = new ResourceConfig(); rc.register(binding); rc.register(JacksonFeature.class); ServletContainer sc = new ServletContainer(rc); ServletHolder holder = new ServletHolder(sc); context.addServlet(holder, "/*"); try { jettyServer.start(); } catch (Exception e) { throw new RuntimeException(e); } log.info("Listening on " + jettyServer.getURI()); return jettyServer; }
rc.register(JacksonFeature.class); ServletContainer sc = new ServletContainer(rc); ServletHolder holder = new ServletHolder(sc); context.addServlet(holder, "/*");
/** * Start an embedded Jetty Server * @throws Exception */ void start() throws Exception { ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); context.setContextPath("/"); jettyServer = new Server(); jettyServer.setHandler(context); ResourceConfig rc = new ResourceConfig(); rc.register(this); rc.register(JacksonFeature.class); ServletContainer sc = new ServletContainer(rc); ServletHolder holder = new ServletHolder(sc); context.addServlet(holder, "/*"); final ServerConnector connector = new ServerConnector(jettyServer); connector.setHost(hostInfo.host()); connector.setPort(hostInfo.port()); jettyServer.addConnector(connector); context.start(); try { jettyServer.start(); } catch (final java.net.SocketException exception) { log.error("Unavailable: " + hostInfo.host() + ":" + hostInfo.port()); throw new Exception(exception.toString()); } }