I finally got around to trying to put together an example project which I could share publicly...
https://github.com/InfoSec812/JettyJerseyWeldExample I'm hoping I can figure out how to get DeltaSpike/Weld to work injecting dependencies into my JAX-RS POJOs... On Mon, Nov 17, 2014 at 9:58 AM, Deven Phillips <[email protected]> wrote: > Creating the ServletContextHandler now looks like: > > ServletContextHandler handler = new ServletContextHandler(); > handler.setContextPath("/"); > handler.addFilter(ProxyAuthFilter.class, "/*", > EnumSet.allOf(DispatcherType.class)); > handler.addEventListener(new BeanManagerResourceBindingListener()); > handler.addEventListener(new CdiServletRequestListener()); > handler.addServlet(new ServletHolder(new ServletContainer(new > PackagesResourceConfig(config.restPackage()))), "/*"); > > > And the exception is an NPE in one of my JAX-RS POJOs where it tries to > access a supposedly injected resource. > > DEven > > On Mon, Nov 17, 2014 at 9:54 AM, Deven Phillips <[email protected]> > wrote: > >> OK, the @Target exception was a classpath problem and I have resolved it, >> but I am still getting NullPointerExceptions because nothing is getting >> injected into my JAX-RS classes... >> >> On Mon, Nov 17, 2014 at 9:28 AM, Deven Phillips <[email protected] >> > wrote: >> >>> So, I just tried this: >>> >>> WebAppContext ctx = new WebAppContext("cc-backend-sungardas", "/"); >>> ctx.addFilter(ProxyAuthFilter.class, "/*", >>> EnumSet.allOf(DispatcherType.class)); >>> ctx.addServlet(new ServletHolder(new ServletContainer(new >>> PackagesResourceConfig(config.restPackage()))), "/*"); >>> ctx.addEventListener(new BeanManagerResourceBindingListener()); >>> >>> and I got the following Exceptions: >>> >>> [DEBUG] 2014-11-17 09:25:44,821 [main] org.jboss.weld.Reflection:82 >>> - WELD-000620: interface javax.ws.rs.core.Context is not declared >>> @Target(METHOD, FIELD, PARAMETER, TYPE). Weld will use this annotation, >>> however this may make the application unportable. >>> Exception in thread "main" >>> org.jboss.weld.exceptions.DefinitionException: Exception List with 1 >>> exceptions: >>> Exception 0 : >>> javax.enterprise.event.ObserverException >>> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native >>> Method) >>> at >>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) >>> at >>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) >>> at java.lang.reflect.Constructor.newInstance(Constructor.java:526) >>> at java.lang.Class.newInstance(Class.java:379) >>> at >>> org.jboss.weld.security.NewInstanceAction.run(NewInstanceAction.java:33) >>> at java.security.AccessController.doPrivileged(Native Method) >>> at >>> org.jboss.weld.injection.Exceptions.rethrowException(Exceptions.java:40) >>> at >>> org.jboss.weld.injection.Exceptions.rethrowException(Exceptions.java:78) >>> at >>> org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:98) >>> at >>> org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:271) >>> at >>> org.jboss.weld.event.ExtensionObserverMethodImpl.sendEvent(ExtensionObserverMethodImpl.java:121) >>> at >>> org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:258) >>> at >>> org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:237) >>> at >>> org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:174) >>> at >>> org.jboss.weld.event.ObserverNotifier.notifyObservers(ObserverNotifier.java:133) >>> at >>> org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:107) >>> at >>> org.jboss.weld.bootstrap.events.AbstractContainerEvent.fire(AbstractContainerEvent.java:54) >>> at >>> org.jboss.weld.bootstrap.events.AbstractDefinitionContainerEvent.fire(AbstractDefinitionContainerEvent.java:42) >>> at >>> org.jboss.weld.bootstrap.events.AfterBeanDiscoveryImpl.fire(AfterBeanDiscoveryImpl.java:59) >>> at >>> org.jboss.weld.bootstrap.WeldStartup.deployBeans(WeldStartup.java:412) >>> at >>> org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:83) >>> at >>> org.jboss.weld.bootstrap.api.helpers.ForwardingBootstrap.deployBeans(ForwardingBootstrap.java:63) >>> at org.jboss.weld.environment.se.Weld.initialize(Weld.java:133) >>> at >>> org.apache.deltaspike.cdise.weld.WeldContainerControl.boot(WeldContainerControl.java:65) >>> at com.sungardas.cc.edison.Main.start(Main.java:171) >>> at com.sungardas.cc.edison.Main.main(Main.java:68) >>> Caused by: java.lang.NoSuchMethodError: >>> org.jboss.weld.context.AbstractUnboundContext.<init>(Z)V >>> at >>> org.jboss.weld.environment.se.contexts.ThreadContext.<init>(ThreadContext.java:40) >>> at >>> org.jboss.weld.environment.se.WeldSEBeanRegistrant.registerWeldSEContexts(WeldSEBeanRegistrant.java:49) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >>> at >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>> at java.lang.reflect.Method.invoke(Method.java:606) >>> at >>> org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:90) >>> ... 17 more >>> >>> at >>> org.jboss.weld.bootstrap.events.AbstractDefinitionContainerEvent.fire(AbstractDefinitionContainerEvent.java:44) >>> at >>> org.jboss.weld.bootstrap.events.AfterBeanDiscoveryImpl.fire(AfterBeanDiscoveryImpl.java:59) >>> at >>> org.jboss.weld.bootstrap.WeldStartup.deployBeans(WeldStartup.java:412) >>> at >>> org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:83) >>> at >>> org.jboss.weld.bootstrap.api.helpers.ForwardingBootstrap.deployBeans(ForwardingBootstrap.java:63) >>> at org.jboss.weld.environment.se.Weld.initialize(Weld.java:133) >>> at >>> org.apache.deltaspike.cdise.weld.WeldContainerControl.boot(WeldContainerControl.java:65) >>> at com.sungardas.cc.edison.Main.start(Main.java:171) >>> at com.sungardas.cc.edison.Main.main(Main.java:68) >>> >>> On Mon, Nov 17, 2014 at 9:09 AM, Deven Phillips < >>> [email protected]> wrote: >>> >>>> This is embedded Jetty 9.2.x and Weld version 1.1.9.Final booted using >>>> DeltaSpike 1.0.2... I have seen that linked document, but I don't see how >>>> to translate that to embedded Jetty's startup... Normally, I would do >>>> something like: >>>> >>>> ServletContextHandler ctx = new ServletContextHandler("/"); >>>> ctx.addFilter(AuthFilter.class, "/*", >>>> EnumSet.allOf(DispatcherType.class) >>>> ctx.addServlet(new ServletContainer(new >>>> PackagesResourceConfig(restPackage)); >>>> ctx.addEventListener(new CdiRequestListener()) >>>> >>>> Where in there would I put in the BeanManager and the >>>> ManagerObjectFactory? Or should I follow the lines below that where they >>>> talk about using a listener to automatically bind the BeanManager? >>>> >>>> Thanks in advance!! >>>> >>>> Deven >>>> >>>> On Sun, Nov 16, 2014 at 10:39 PM, Jason Porter <[email protected] >>>> > wrote: >>>> >>>>> Which version of weld? >>>>> >>>>> https://docs.jboss.org/weld/reference/latest/en-US/html/environments.html#_jetty >>>>> should be all you need for weld in jetty. >>>>> On Sun, Nov 16, 2014 at 20:28 Deven Phillips <[email protected] >>>>> > >>>>> wrote: >>>>> >>>>> > Hi all, >>>>> > >>>>> > >>>>> > I'm trying really hard to figure out how to make DeltaSpike/Weld >>>>> work >>>>> > with Jetty and Jersey... I can get the Jersey servlet to load, but I >>>>> cannot >>>>> > get any of the dependencies to be injected... My goal is to replace >>>>> > Google's Guice DI framework so that I can achieve better test >>>>> coverage and >>>>> > decoupling... I'm having a very hard time finding any documentation >>>>> for >>>>> > wiring this up.. >>>>> > >>>>> > Any help would be appreciated! >>>>> > >>>>> > Deven >>>>> > >>>>> >>>> >>>> >>> >> >
