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 19:42:22 GMT
OK, I think that I have a project which can run, but I am still getting
NPEs for the injected resource.

On Fri, Nov 21, 2014 at 2:13 PM, Deven Phillips <deven.phillips@gmail.com>
wrote:

> And by working, I mean it compiles.. I do not mean that the Dependency
> Injection is working.
>
> On Fri, Nov 21, 2014 at 2:13 PM, Deven Phillips <deven.phillips@gmail.com>
> wrote:
>
>> OK, I created a branch called DeltaSpike which is now working... Sorry
>> for wasting your time with a broken source tree!!
>>
>> Deven
>>
>> On Fri, Nov 21, 2014 at 2:04 PM, Deven Phillips <deven.phillips@gmail.com
>> > wrote:
>>
>>> I've never needed an "Application" class before while using Guice or
>>> manually configuring JAX-RS with Jetty.. I will check to see if that makes
>>> a difference...
>>>
>>> Deven
>>>
>>> On Fri, Nov 21, 2014 at 1:37 PM, Jason Porter <lightguard.jp@gmail.com>
>>> wrote:
>>>
>>>> Maybe I missed something, but why are you going through all the trouble
>>>> of
>>>> starting the server and setting everything up manually? I still don't
>>>> see
>>>> any JAX-RS config or JAX-RS Application class.
>>>>
>>>> On Fri, Nov 21, 2014 at 11:30 AM, Deven Phillips <
>>>> deven.phillips@gmail.com>
>>>> wrote:
>>>>
>>>> > I see what happened... I meant to create a separate branch for a
>>>> WeldSE
>>>> > implementation and failed.. Checkout the tag 'deltaspike'
>>>> >
>>>> > Deven
>>>> >
>>>> > On Fri, Nov 21, 2014 at 1:27 PM, Deven Phillips <
>>>> deven.phillips@gmail.com>
>>>> > wrote:
>>>> >
>>>> > > 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
>>>> > >> > >>>>> >
>>>> > >> > >>>>>
>>>> > >> > >>>>
>>>> > >> > >>>>
>>>> > >> > >>>
>>>> > >> > >>
>>>> > >> > >
>>>> > >> >
>>>> > >>
>>>> > >
>>>> > >
>>>> >
>>>>
>>>>
>>>>
>>>> --
>>>> Jason Porter
>>>> http://en.gravatar.com/lightguardjp
>>>>
>>>
>>>
>>
>

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