deltaspike-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Deven Phillips <deven.phill...@gmail.com>
Subject Re: Jetty/Jersey/Injection
Date Fri, 21 Nov 2014 18:27:54 GMT
John,

    Have a look at com.zanclus.example.api.GetServerTime

Deven

On Fri, Nov 21, 2014 at 11:41 AM, John D. Ament <john.d.ament@gmail.com>
wrote:

> Deven,
>
> Looks like there's no JAX-RS resources in this project...
>
> On Fri Nov 21 2014 at 10:08:34 AM Deven Phillips <deven.phillips@gmail.com
> >
> wrote:
>
> > 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 <
> deven.phillips@gmail.com>
> > wrote:
> >
> > > Creating the ServletContextHandler now looks like:
> > >
> > >         ServletContextHandler handler = new ServletContextHandler();
> > >         handler.setContextPath("/");
> > >         handler.addFilter(ProxyAuthFilter.class, "/*",
> > > EnumSet.allOf(DispatcherType.class));
> > >         handler.addEventListener(new BeanManagerResourceBindingList
> > ener());
> > >         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 <
> > deven.phillips@gmail.com>
> > > 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 <
> > deven.phillips@gmail.com
> > >> > 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 <
> > >>> deven.phillips@gmail.com> 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 <
> > lightguard.jp@gmail.com
> > >>>> > 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 <
> > deven.phillips@gmail.com
> > >>>>> >
> > >>>>> 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
> > >>>>> >
> > >>>>>
> > >>>>
> > >>>>
> > >>>
> > >>
> > >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message