Nino,

It looks like the message you are getting is misleading; probably the
refactoring out of the Wicket IOC module (which both Wicket's Guice
and Spring modules sit on top of now) missed changing that exception's
text.

"InjectorHolder has not been assigned" is caused by Wicket's Guice
integration not setting it the way Spring does.

(((Application.get()).getMetaData(GuiceInjectorHolder.INJECTOR_KEY)).getInjector().injectMembers(this);
would probably be the right Guice equivalent of your
InjectorHolder.getInjector().inject(this);

If you have taken copies of the LegUp's [1] make sure you are using
the latest version.

If one of us finds more time later and you're still having a problem
(please let us know), we can debug the Wicket code and submit a patch,
or it may be that the Guice integration just isn't supposed to work
exactly like the Wicket Spring integration yet t (Igor?) but I haven't
had a chance to take a good look through Jira yet, but it may be
covered already in a related issue [2].

Then, we should also see how the JEE contrib (and James' stuff for CDI
etc) works to keep things consistent across the board for people using
IOC with Wicket.

Regards - Cemal
jWeekend
OO & Java Technologies, Wicket
Consulting, Development, Training
http://jWeekend.com

[1] http://jweekend.com/dev/LegUp
[2] http://issues.apache.org/jira/browse/WICKET-1143


On 8 April 2010 10:08, nino martinez wael <nino.martinez.w...@gmail.com> wrote:
> Hi
>
> I revived my old wicket talk yesterday and since we are using guice at
> the company where Im at now the people attending the talk wanted to
> see my examples in guice / wicket instead of spring / wicket. So I
> used the legup archetype. Which worked nicely until I did a ldm which
> I had to inject a dao into. With spring I would add the ldm to the
> component instantiation listener, but if I do it the "spring" way
> (InjectorHolder.getInjector().inject(this);) I get this error:
>
> WicketMessage: Can't instantiate page using constructor public
> com.netdesign.blog.ViewPostPage(org.apache.wicket.PageParameters) and
> argument postid = "[3]"
>
> Root cause:
>
> java.lang.IllegalStateException: InjectorHolder has not been assigned
> an injector. Use InjectorHolder.setInjector() to assign an injector.
> In most cases this should be done once inside SpringWebApplication
> subclass's init() method.
> at 
> org.apache.wicket.injection.web.InjectorHolder.getInjector(InjectorHolder.java:70)
>
> Now there are several things I wonder about, first of all, why are
> spring mentioned at all? Does wicket package DI specific classes in a
> common distribution, and if so should'nt it be called something
> specific towards the targetet DI framework. And second and more
> important how can I achieve the same thing with guice? Or this could
> also be a "bug" with legup or something. But I actually checked the
> init method and  InjectorHolder.setInjector does not take the guice
> component injector as argument.
>
>
>
> regards Nino
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to