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 15:08:06 GMT
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 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 <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