Are you able to try it with Guice 3? It has some better error messaging for assisted inject. sam
On Wed, May 11, 2011 at 4:10 PM, gary <[email protected]> wrote: > I am trying to use assisted inject in guice v2 under eclipse inside a > bundle in helios (eclipse 3.6) > however I am getting a problem with IllegaAccessErrors: > > > Caused by: java.lang.IllegalAccessError: tried to access class > com.google.inject.assistedinject.FactoryProvider2 from class > $com.google.inject.assistedinject.FactoryProvider2$$FastClassByGuice$ > $9dcdf6d7 > at $com.google.inject.assistedinject.FactoryProvider2$ > $FastClassByGuice$$9dcdf6d7.invoke(<generated>) > at > com.google.inject.internal.cglib.reflect.FastMethod.invoke(FastMethod.java: > 53) > at com.google.inject.SingleMethodInjector > $1.invoke(SingleMethodInjector.java:59) > at > com.google.inject.SingleMethodInjector.inject(SingleMethodInjector.java: > 91) > at > > com.google.inject.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java: > 99) > at com.google.inject.MembersInjectorImpl > $1.call(MembersInjectorImpl.java:76) > at com.google.inject.MembersInjectorImpl > $1.call(MembersInjectorImpl.java:74) > at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java: > 804) > at > > com.google.inject.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java: > 74) > at com.google.inject.Initializer > $InjectableReference.get(Initializer.java:145) > at com.google.inject.Initializer.injectAll(Initializer.java:92) > at > com.google.inject.InjectorBuilder.injectDynamically(InjectorBuilder.java: > 171) > at com.google.inject.InjectorBuilder.build(InjectorBuilder.java:113) > at com.google.inject.Guice.createInjector(Guice.java:92) > at com.google.inject.Guice.createInjector(Guice.java:69) > at com.google.inject.Guice.createInjector(Guice.java:59) > at > > org.dyndns.hephzibah.piltdown.base.services.GuiceSingleton.<init>(GuiceSingleton.java: > 14) > at > > org.dyndns.hephzibah.piltdown.plugin.PiltdownPlugin.start(PiltdownPlugin.java: > 48) > > > here are the classes > > in module configure (called from the bundle start method > > > > > bind(RootlessPiltdownCommandFactory.class).toProvider(FactoryProvider.newFactory(RootlessPiltdownCommandFactory.class, > RootlessPiltdownCommand.class)); > > file RootlessPiltdownCommandFactory.java: > > package org.dyndns.hephzibah.piltdown.commands; > > import java.io.File; > > > public interface RootlessPiltdownCommandFactory { > public RootlessPiltdownCommand create(String command, String > uiName); > public RootlessPiltdownCommand create(String command, String > uiName,File workingDir); > > > > } > > in RootlessPiltdownCommand.java: > > package org.dyndns.hephzibah.piltdown.commands; > > import java.io.File; > > public class RootlessPiltdownCommand extends AbstractShellCommand { > > > @Inject > public RootlessPiltdownCommand(CoreCommandServices services, > @Assisted String command, @Assisted String uiName) { > this(services, command, uiName, (File) null); > } > > @Inject > public RootlessPiltdownCommand(CoreCommandServices services, > @Assisted String command, @Assisted String uiName, @Assisted File > workingDir) { > super(services, uiName, null, workingDir, false); > > Assert.isNotNull(command); > this.command = command; > } > > // operations > ... > } > > > can anyone help me I am most confused as to the problem as manually > creating a factory and binding it seems to work ;-)... > > > regards > gary > > -- > You received this message because you are subscribed to the Google Groups > "google-guice" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/google-guice?hl=en. > > -- You received this message because you are subscribed to the Google Groups "google-guice" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-guice?hl=en.
