Quantcast

wicket 1.6 snapshot - cdi - inject - NullPointerException

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

wicket 1.6 snapshot - cdi - inject - NullPointerException

Francois Meillet
Hi All,

The problem is :  I got a NullPointerException after using @Inject
environment : wicket 1.6 snapshot - cdi (weld) - inject - NullPointerException - tomcat 7 / jboss AS 7

module 1 : bookstoreservice  (with a beans.xml file)
module 2 : bookstoreweb  (with a beans.xml file)

in the bookstoreservice module I have these 2 classes:

@ApplicationScoped
public class Clock {
    public DateTime getTime() {
        return new DateTime().now();
    }
}

@ApplicationScoped
public class BigBenClock {

    @Inject
    Clock clock;

    public BigBenClock() {
    }

    public DateTime getBigBenTime() {
        return clock.getTime().plusHours(2);
    }
}



First use : All works fine

In a webpage, I have

    @Inject
    Clock clock;

    @Inject
    BigBenClock bigBenClock;

    add(new Label("time", new PropertyModel(this, "clock.time")));
    add(new Label("bigBenTime", new PropertyModel(this, "bigBenClock.bigBenTime")));

All works fine, thanks to Igor's example https://www.42lines.net/2011/11/15/integrating-cdi-into-wicket/


Second use : NullPointerException

If I use the injection in the bookstoreservice module with no injection in the webpage like this


    @Inject
    Clock clock;

    add(new Label("time", new PropertyModel(this, "clock.time")));

    BigBenClock bigBenClock = new BigBenClock();
    DateTime bigBenTime = bigBenClock.getBigBenTime();

I get a NullPointerException.  The BigBenClock's clok is null.
Same result in Tomcat 7 and Jboss AS7.
       

This is how I start the Wicket application

getComponentInstantiationListeners().add(new JavaEEComponentInjector(this, new ModuleJndiNamingStrategy()));
BeanManager beanManager = (BeanManager)getServletContext().getAttribute(  Listener.BEAN_MANAGER_ATTRIBUTE_NAME);
new CdiConfiguration(beanManager).setPropagation(ConversationPropagation.NONE).configure(this);


Any advice ?

Thanks

François
---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

François Meillet
Formation Wicket - Développement Wicket
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: wicket 1.6 snapshot - cdi - inject - NullPointerException

Igor Vaynberg-2
a stack trace would be helpful...

-igor

On Sat, Jul 28, 2012 at 11:26 AM, Francois Meillet
<[hidden email]> wrote:

> Hi All,
>
> The problem is :  I got a NullPointerException after using @Inject
> environment : wicket 1.6 snapshot - cdi (weld) - inject - NullPointerException - tomcat 7 / jboss AS 7
>
> module 1 : bookstoreservice  (with a beans.xml file)
> module 2 : bookstoreweb  (with a beans.xml file)
>
> in the bookstoreservice module I have these 2 classes:
>
> @ApplicationScoped
> public class Clock {
>     public DateTime getTime() {
>         return new DateTime().now();
>     }
> }
>
> @ApplicationScoped
> public class BigBenClock {
>
>     @Inject
>     Clock clock;
>
>     public BigBenClock() {
>     }
>
>     public DateTime getBigBenTime() {
>         return clock.getTime().plusHours(2);
>     }
> }
>
>
>
> First use : All works fine
>
> In a webpage, I have
>
>     @Inject
>     Clock clock;
>
>     @Inject
>     BigBenClock bigBenClock;
>
>     add(new Label("time", new PropertyModel(this, "clock.time")));
>     add(new Label("bigBenTime", new PropertyModel(this, "bigBenClock.bigBenTime")));
>
> All works fine, thanks to Igor's example https://www.42lines.net/2011/11/15/integrating-cdi-into-wicket/
>
>
> Second use : NullPointerException
>
> If I use the injection in the bookstoreservice module with no injection in the webpage like this
>
>
>     @Inject
>     Clock clock;
>
>     add(new Label("time", new PropertyModel(this, "clock.time")));
>
>     BigBenClock bigBenClock = new BigBenClock();
>     DateTime bigBenTime = bigBenClock.getBigBenTime();
>
> I get a NullPointerException.  The BigBenClock's clok is null.
> Same result in Tomcat 7 and Jboss AS7.
>
>
> This is how I start the Wicket application
>
> getComponentInstantiationListeners().add(new JavaEEComponentInjector(this, new ModuleJndiNamingStrategy()));
> BeanManager beanManager = (BeanManager)getServletContext().getAttribute(  Listener.BEAN_MANAGER_ATTRIBUTE_NAME);
> new CdiConfiguration(beanManager).setPropagation(ConversationPropagation.NONE).configure(this);
>
>
> Any advice ?
>
> Thanks
>
> François
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: wicket 1.6 snapshot - cdi - inject - NullPointerException

Francois Meillet
Here it is :

org.apache.wicket.WicketRuntimeException: Can't instantiate page using constructor 'public bookstoreweb.test.BookPage(org.apache.wicket.request.mapper.parameter.PageParameters)' and argument 'c=[color]
        at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:193) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
        at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:98) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
        at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:44) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
        at org.apache.wicket.DefaultMapperContext.newPageInstance(DefaultMapperContext.java:137) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
        at org.apache.wicket.core.request.handler.PageProvider.resolvePageInstance(PageProvider.java:278) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
        at org.apache.wicket.core.request.handler.PageProvider.getPageInstance(PageProvider.java:166) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
        at org.apache.wicket.request.handler.render.PageRenderer.getPage(PageRenderer.java:78) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
        at org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:93) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
        at org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:237) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
        at org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:165) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
        at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:814) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
        at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64) ~[wicket-request-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
        at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:253) [wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
        at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:210) [wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
        at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:281) [wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
        at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:188) [wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
        at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:245) [wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) [catalina.jar:7.0.25]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.25]
        at org.apache.catalina.filters.ExpiresFilter.doFilter(ExpiresFilter.java:1179) [catalina.jar:7.0.25]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) [catalina.jar:7.0.25]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.25]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) [catalina.jar:7.0.25]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.25]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) [catalina.jar:7.0.25]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) [catalina.jar:7.0.25]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) [catalina.jar:7.0.25]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) [catalina.jar:7.0.25]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) [catalina.jar:7.0.25]
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) [catalina.jar:7.0.25]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) [catalina.jar:7.0.25]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) [catalina.jar:7.0.25]
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) [tomcat-coyote.jar:7.0.25]
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579) [tomcat-coyote.jar:7.0.25]
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) [tomcat-coyote.jar:7.0.25]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [na:1.7.0_04-ea]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [na:1.7.0_04-ea]
        at java.lang.Thread.run(Thread.java:722) [na:1.7.0_04-ea]
Caused by: java.lang.reflect.InvocationTargetException: null
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.7.0_04-ea]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) ~[na:1.7.0_04-ea]
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.7.0_04-ea]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:525) ~[na:1.7.0_04-ea]
        at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:170) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
        ... 38 common frames omitted
Caused by: java.lang.NullPointerException: null
        at bookstoremodel.cdi.BigBenClock.getBigBenTime(BigBenClock.java:20) ~[bookstoremodel-4.0.jar:na]
        at bookstoreweb.test.BookPage.<init>(BookPage.java:85) ~[BookPage.class:na]


Francois


Le 28 juil. 2012 à 10:30, Igor Vaynberg a écrit :

> a stack trace would be helpful...
>
> -igor
>
> On Sat, Jul 28, 2012 at 11:26 AM, Francois Meillet
> <[hidden email]> wrote:
>> Hi All,
>>
>> The problem is :  I got a NullPointerException after using @Inject
>> environment : wicket 1.6 snapshot - cdi (weld) - inject - NullPointerException - tomcat 7 / jboss AS 7
>>
>> module 1 : bookstoreservice  (with a beans.xml file)
>> module 2 : bookstoreweb  (with a beans.xml file)
>>
>> in the bookstoreservice module I have these 2 classes:
>>
>> @ApplicationScoped
>> public class Clock {
>>    public DateTime getTime() {
>>        return new DateTime().now();
>>    }
>> }
>>
>> @ApplicationScoped
>> public class BigBenClock {
>>
>>    @Inject
>>    Clock clock;
>>
>>    public BigBenClock() {
>>    }
>>
>>    public DateTime getBigBenTime() {
>>        return clock.getTime().plusHours(2);
>>    }
>> }
>>
>>
>>
>> First use : All works fine
>>
>> In a webpage, I have
>>
>>    @Inject
>>    Clock clock;
>>
>>    @Inject
>>    BigBenClock bigBenClock;
>>
>>    add(new Label("time", new PropertyModel(this, "clock.time")));
>>    add(new Label("bigBenTime", new PropertyModel(this, "bigBenClock.bigBenTime")));
>>
>> All works fine, thanks to Igor's example https://www.42lines.net/2011/11/15/integrating-cdi-into-wicket/
>>
>>
>> Second use : NullPointerException
>>
>> If I use the injection in the bookstoreservice module with no injection in the webpage like this
>>
>>
>>    @Inject
>>    Clock clock;
>>
>>    add(new Label("time", new PropertyModel(this, "clock.time")));
>>
>>    BigBenClock bigBenClock = new BigBenClock();
>>    DateTime bigBenTime = bigBenClock.getBigBenTime();
>>
>> I get a NullPointerException.  The BigBenClock's clok is null.
>> Same result in Tomcat 7 and Jboss AS7.
>>
>>
>> This is how I start the Wicket application
>>
>> getComponentInstantiationListeners().add(new JavaEEComponentInjector(this, new ModuleJndiNamingStrategy()));
>> BeanManager beanManager = (BeanManager)getServletContext().getAttribute(  Listener.BEAN_MANAGER_ATTRIBUTE_NAME);
>> new CdiConfiguration(beanManager).setPropagation(ConversationPropagation.NONE).configure(this);
>>
>>
>> Any advice ?
>>
>> Thanks
>>
>> François
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

François Meillet
Formation Wicket - Développement Wicket
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: wicket 1.6 snapshot - cdi - inject - NullPointerException

Igor Vaynberg-2
looks like a cdi problem since the NPE is inside BigBenClock which is
created and injected by cdi... strange.

-igor

On Sat, Jul 28, 2012 at 2:41 PM, Francois Meillet
<[hidden email]> wrote:

> Here it is :
>
> org.apache.wicket.WicketRuntimeException: Can't instantiate page using constructor 'public bookstoreweb.test.BookPage(org.apache.wicket.request.mapper.parameter.PageParameters)' and argument 'c=[color]
>         at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:193) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>         at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:98) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>         at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:44) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>         at org.apache.wicket.DefaultMapperContext.newPageInstance(DefaultMapperContext.java:137) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>         at org.apache.wicket.core.request.handler.PageProvider.resolvePageInstance(PageProvider.java:278) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>         at org.apache.wicket.core.request.handler.PageProvider.getPageInstance(PageProvider.java:166) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>         at org.apache.wicket.request.handler.render.PageRenderer.getPage(PageRenderer.java:78) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>         at org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:93) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>         at org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:237) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>         at org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:165) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>         at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:814) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>         at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64) ~[wicket-request-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>         at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:253) [wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>         at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:210) [wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>         at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:281) [wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>         at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:188) [wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>         at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:245) [wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) [catalina.jar:7.0.25]
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.25]
>         at org.apache.catalina.filters.ExpiresFilter.doFilter(ExpiresFilter.java:1179) [catalina.jar:7.0.25]
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) [catalina.jar:7.0.25]
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.25]
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) [catalina.jar:7.0.25]
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.25]
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) [catalina.jar:7.0.25]
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) [catalina.jar:7.0.25]
>         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) [catalina.jar:7.0.25]
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) [catalina.jar:7.0.25]
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) [catalina.jar:7.0.25]
>         at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) [catalina.jar:7.0.25]
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) [catalina.jar:7.0.25]
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) [catalina.jar:7.0.25]
>         at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) [tomcat-coyote.jar:7.0.25]
>         at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579) [tomcat-coyote.jar:7.0.25]
>         at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) [tomcat-coyote.jar:7.0.25]
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [na:1.7.0_04-ea]
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [na:1.7.0_04-ea]
>         at java.lang.Thread.run(Thread.java:722) [na:1.7.0_04-ea]
> Caused by: java.lang.reflect.InvocationTargetException: null
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.7.0_04-ea]
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) ~[na:1.7.0_04-ea]
>         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.7.0_04-ea]
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:525) ~[na:1.7.0_04-ea]
>         at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:170) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>         ... 38 common frames omitted
> Caused by: java.lang.NullPointerException: null
>         at bookstoremodel.cdi.BigBenClock.getBigBenTime(BigBenClock.java:20) ~[bookstoremodel-4.0.jar:na]
>         at bookstoreweb.test.BookPage.<init>(BookPage.java:85) ~[BookPage.class:na]
>
>
> Francois
>
>
> Le 28 juil. 2012 à 10:30, Igor Vaynberg a écrit :
>
>> a stack trace would be helpful...
>>
>> -igor
>>
>> On Sat, Jul 28, 2012 at 11:26 AM, Francois Meillet
>> <[hidden email]> wrote:
>>> Hi All,
>>>
>>> The problem is :  I got a NullPointerException after using @Inject
>>> environment : wicket 1.6 snapshot - cdi (weld) - inject - NullPointerException - tomcat 7 / jboss AS 7
>>>
>>> module 1 : bookstoreservice  (with a beans.xml file)
>>> module 2 : bookstoreweb  (with a beans.xml file)
>>>
>>> in the bookstoreservice module I have these 2 classes:
>>>
>>> @ApplicationScoped
>>> public class Clock {
>>>    public DateTime getTime() {
>>>        return new DateTime().now();
>>>    }
>>> }
>>>
>>> @ApplicationScoped
>>> public class BigBenClock {
>>>
>>>    @Inject
>>>    Clock clock;
>>>
>>>    public BigBenClock() {
>>>    }
>>>
>>>    public DateTime getBigBenTime() {
>>>        return clock.getTime().plusHours(2);
>>>    }
>>> }
>>>
>>>
>>>
>>> First use : All works fine
>>>
>>> In a webpage, I have
>>>
>>>    @Inject
>>>    Clock clock;
>>>
>>>    @Inject
>>>    BigBenClock bigBenClock;
>>>
>>>    add(new Label("time", new PropertyModel(this, "clock.time")));
>>>    add(new Label("bigBenTime", new PropertyModel(this, "bigBenClock.bigBenTime")));
>>>
>>> All works fine, thanks to Igor's example https://www.42lines.net/2011/11/15/integrating-cdi-into-wicket/
>>>
>>>
>>> Second use : NullPointerException
>>>
>>> If I use the injection in the bookstoreservice module with no injection in the webpage like this
>>>
>>>
>>>    @Inject
>>>    Clock clock;
>>>
>>>    add(new Label("time", new PropertyModel(this, "clock.time")));
>>>
>>>    BigBenClock bigBenClock = new BigBenClock();
>>>    DateTime bigBenTime = bigBenClock.getBigBenTime();
>>>
>>> I get a NullPointerException.  The BigBenClock's clok is null.
>>> Same result in Tomcat 7 and Jboss AS7.
>>>
>>>
>>> This is how I start the Wicket application
>>>
>>> getComponentInstantiationListeners().add(new JavaEEComponentInjector(this, new ModuleJndiNamingStrategy()));
>>> BeanManager beanManager = (BeanManager)getServletContext().getAttribute(  Listener.BEAN_MANAGER_ATTRIBUTE_NAME);
>>> new CdiConfiguration(beanManager).setPropagation(ConversationPropagation.NONE).configure(this);
>>>
>>>
>>> Any advice ?
>>>
>>> Thanks
>>>
>>> François
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [hidden email]
>>> For additional commands, e-mail: [hidden email]
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: wicket 1.6 snapshot - cdi - inject - NullPointerException

Francois Meillet
At the startup I can see
WELD-000106 Bean: Managed Bean [class bookstoremodel.cdi.BigBenClock] with qualifiers [@Any @Default]
BigBenClock reacts as it was not managed.


Le 28 juil. 2012 à 14:29, Igor Vaynberg a écrit :

> looks like a cdi problem since the NPE is inside BigBenClock which is
> created and injected by cdi... strange.
>
> -igor
>
> On Sat, Jul 28, 2012 at 2:41 PM, Francois Meillet
> <[hidden email]> wrote:
>> Here it is :
>>
>> org.apache.wicket.WicketRuntimeException: Can't instantiate page using constructor 'public bookstoreweb.test.BookPage(org.apache.wicket.request.mapper.parameter.PageParameters)' and argument 'c=[color]
>>        at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:193) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>>        at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:98) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>>        at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:44) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>>        at org.apache.wicket.DefaultMapperContext.newPageInstance(DefaultMapperContext.java:137) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>>        at org.apache.wicket.core.request.handler.PageProvider.resolvePageInstance(PageProvider.java:278) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>>        at org.apache.wicket.core.request.handler.PageProvider.getPageInstance(PageProvider.java:166) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>>        at org.apache.wicket.request.handler.render.PageRenderer.getPage(PageRenderer.java:78) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>>        at org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:93) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>>        at org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:237) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>>        at org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:165) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>>        at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:814) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>>        at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64) ~[wicket-request-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>>        at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:253) [wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>>        at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:210) [wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>>        at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:281) [wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>>        at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:188) [wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>>        at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:245) [wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>>        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) [catalina.jar:7.0.25]
>>        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.25]
>>        at org.apache.catalina.filters.ExpiresFilter.doFilter(ExpiresFilter.java:1179) [catalina.jar:7.0.25]
>>        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) [catalina.jar:7.0.25]
>>        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.25]
>>        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) [catalina.jar:7.0.25]
>>        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.25]
>>        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) [catalina.jar:7.0.25]
>>        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) [catalina.jar:7.0.25]
>>        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) [catalina.jar:7.0.25]
>>        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) [catalina.jar:7.0.25]
>>        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) [catalina.jar:7.0.25]
>>        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) [catalina.jar:7.0.25]
>>        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) [catalina.jar:7.0.25]
>>        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) [catalina.jar:7.0.25]
>>        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) [tomcat-coyote.jar:7.0.25]
>>        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579) [tomcat-coyote.jar:7.0.25]
>>        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) [tomcat-coyote.jar:7.0.25]
>>        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [na:1.7.0_04-ea]
>>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [na:1.7.0_04-ea]
>>        at java.lang.Thread.run(Thread.java:722) [na:1.7.0_04-ea]
>> Caused by: java.lang.reflect.InvocationTargetException: null
>>        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.7.0_04-ea]
>>        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) ~[na:1.7.0_04-ea]
>>        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.7.0_04-ea]
>>        at java.lang.reflect.Constructor.newInstance(Constructor.java:525) ~[na:1.7.0_04-ea]
>>        at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:170) ~[wicket-core-6.0-SNAPSHOT.jar:6.0-SNAPSHOT]
>>        ... 38 common frames omitted
>> Caused by: java.lang.NullPointerException: null
>>        at bookstoremodel.cdi.BigBenClock.getBigBenTime(BigBenClock.java:20) ~[bookstoremodel-4.0.jar:na]
>>        at bookstoreweb.test.BookPage.<init>(BookPage.java:85) ~[BookPage.class:na]
>>
>>
>> Francois
>>
>>
>> Le 28 juil. 2012 à 10:30, Igor Vaynberg a écrit :
>>
>>> a stack trace would be helpful...
>>>
>>> -igor
>>>
>>> On Sat, Jul 28, 2012 at 11:26 AM, Francois Meillet
>>> <[hidden email]> wrote:
>>>> Hi All,
>>>>
>>>> The problem is :  I got a NullPointerException after using @Inject
>>>> environment : wicket 1.6 snapshot - cdi (weld) - inject - NullPointerException - tomcat 7 / jboss AS 7
>>>>
>>>> module 1 : bookstoreservice  (with a beans.xml file)
>>>> module 2 : bookstoreweb  (with a beans.xml file)
>>>>
>>>> in the bookstoreservice module I have these 2 classes:
>>>>
>>>> @ApplicationScoped
>>>> public class Clock {
>>>>   public DateTime getTime() {
>>>>       return new DateTime().now();
>>>>   }
>>>> }
>>>>
>>>> @ApplicationScoped
>>>> public class BigBenClock {
>>>>
>>>>   @Inject
>>>>   Clock clock;
>>>>
>>>>   public BigBenClock() {
>>>>   }
>>>>
>>>>   public DateTime getBigBenTime() {
>>>>       return clock.getTime().plusHours(2);
>>>>   }
>>>> }
>>>>
>>>>
>>>>
>>>> First use : All works fine
>>>>
>>>> In a webpage, I have
>>>>
>>>>   @Inject
>>>>   Clock clock;
>>>>
>>>>   @Inject
>>>>   BigBenClock bigBenClock;
>>>>
>>>>   add(new Label("time", new PropertyModel(this, "clock.time")));
>>>>   add(new Label("bigBenTime", new PropertyModel(this, "bigBenClock.bigBenTime")));
>>>>
>>>> All works fine, thanks to Igor's example https://www.42lines.net/2011/11/15/integrating-cdi-into-wicket/
>>>>
>>>>
>>>> Second use : NullPointerException
>>>>
>>>> If I use the injection in the bookstoreservice module with no injection in the webpage like this
>>>>
>>>>
>>>>   @Inject
>>>>   Clock clock;
>>>>
>>>>   add(new Label("time", new PropertyModel(this, "clock.time")));
>>>>
>>>>   BigBenClock bigBenClock = new BigBenClock();
>>>>   DateTime bigBenTime = bigBenClock.getBigBenTime();
>>>>
>>>> I get a NullPointerException.  The BigBenClock's clok is null.
>>>> Same result in Tomcat 7 and Jboss AS7.
>>>>
>>>>
>>>> This is how I start the Wicket application
>>>>
>>>> getComponentInstantiationListeners().add(new JavaEEComponentInjector(this, new ModuleJndiNamingStrategy()));
>>>> BeanManager beanManager = (BeanManager)getServletContext().getAttribute(  Listener.BEAN_MANAGER_ATTRIBUTE_NAME);
>>>> new CdiConfiguration(beanManager).setPropagation(ConversationPropagation.NONE).configure(this);
>>>>
>>>>
>>>> Any advice ?
>>>>
>>>> Thanks
>>>>
>>>> François
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [hidden email]
>>>> For additional commands, e-mail: [hidden email]
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [hidden email]
>>> For additional commands, e-mail: [hidden email]
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>

François Meillet
Formation Wicket - Développement Wicket
Loading...