protected void setInvoker(JAXRSServerFactoryBean bean, ServletConfig servletConfig) throws ServletException { String value = servletConfig.getInitParameter(INVOKER_PARAM); if (value == null) { return; } Map<String, List<String>> props = new HashMap<>(); String theValue = getClassNameAndProperties(value, props); if (!theValue.isEmpty()) { try { Class<?> intClass = loadClass(theValue, "Invoker"); Object object = intClass.newInstance(); injectProperties(object, props); bean.setInvoker((Invoker)object); } catch (ServletException ex) { throw ex; } catch (Exception ex) { LOG.warning("Invoker class " + theValue + " can not be created"); throw new ServletException(ex); } } }
protected void setInvoker(JAXRSServerFactoryBean bean, ServletConfig servletConfig) throws ServletException { String value = servletConfig.getInitParameter(INVOKER_PARAM); if (value == null) { return; } Map<String, List<String>> props = new HashMap<String, List<String>>(); String theValue = getClassNameAndProperties(value, props); if (theValue.length() != 0) { try { Class<?> intClass = loadClass(theValue, "Invoker"); Object object = intClass.newInstance(); injectProperties(object, props); bean.setInvoker((Invoker)object); } catch (ServletException ex) { throw ex; } catch (Exception ex) { LOG.warning("Invoker class " + theValue + " can not be created"); throw new ServletException(ex); } } }
@Override public final void customize(JAXRSServerFactoryBean bean) { bean.setInvoker(createInvoker(bean)); StreamingResponseProvider<Object> streamProvider = new StreamingResponseProvider<>(); streamProvider.setProduceMediaTypes(Collections.singletonList(MediaType.APPLICATION_JSON)); bean.setProvider(streamProvider); } }
factory.setInvoker(invoker);
factory.setInvoker(new AutoJAXRSInvoker(restEjbs));
protected Server createServer() { CxfRsEndpoint endpoint = (CxfRsEndpoint) getEndpoint(); CxfRsInvoker cxfRsInvoker = new CxfRsInvoker(endpoint, this); JAXRSServerFactoryBean svrBean = endpoint.createJAXRSServerFactoryBean(); Bus bus = endpoint.getBus(); // We need to apply the bus setting from the CxfRsEndpoint which does not use the default bus if (bus != null) { svrBean.setBus(bus); } svrBean.setInvoker(cxfRsInvoker); // setup the UnitOfWorkCloserInterceptor for OneWayMessageProcessor svrBean.getInInterceptors().add(new UnitOfWorkCloserInterceptor(Phase.POST_INVOKE, true)); // close the UnitOfWork normally svrBean.getOutInterceptors().add(new UnitOfWorkCloserInterceptor()); Server server = svrBean.create(); final MessageObserver originalOutFaultObserver = server.getEndpoint().getOutFaultObserver(); //proxy OutFaultObserver so we can close org.apache.camel.spi.UnitOfWork in case of error server.getEndpoint().setOutFaultObserver(message -> { CxfUtils.closeCamelUnitOfWork(message); originalOutFaultObserver.onMessage(message); }); return server; }
protected void run() { JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean(); sf.setResourceClasses(BookStoreWithValidationPerRequest.class); sf.setProvider(new ValidationExceptionMapper()); sf.setAddress("http://localhost:" + PORT + "/"); sf.setInvoker(new JAXRSBeanValidationInvoker()); sf.create(); }
protected void run() { Bus bus = BusFactory.getDefaultBus(); // Make sure default JSONProvider is not loaded bus.setProperty("skip.default.json.provider.registration", true); JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean(); sf.setInvoker(new ReactiveIOInvoker()); sf.setProvider(new JacksonJsonProvider()); sf.getOutInterceptors().add(new LoggingOutInterceptor()); sf.setResourceClasses(RxJava2ObservableService.class); sf.setResourceProvider(RxJava2ObservableService.class, new SingletonResourceProvider(new RxJava2ObservableService(), true)); sf.setAddress("http://localhost:" + PORT + "/"); server = sf.create(); }
protected void run() { JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean(); sf.setInvoker(new CustomModelInvoker()); sf.setProvider(new PreMatchContainerRequestFilter()); sf.setAddress("http://localhost:" + PORT + "/");