Problem with @Inject (Unsatisfied dependencies)
erraiuser Feb 24, 2016 4:47 AMHi,
i am using Errai for several months - everything works fine without any problem - i really enjoy using Errai.
Yesterday i tried to add a Bean outside the client package (Test.java in dev package) an and tried to inject some other stuff, but this does not work as expected.
My project structure:
com.mydomain.myapp.client
com.mydomain.myapp.shared
com.mydomain.myapp.server
com.mydomain.myapp.dev (newly added)
Myapp.gwt.xml:
located on com.mydomain.myapp
<module ...>
....
<source path='client' />
<source path='shared' />
<!-- (new) -->
<source path='dev' />
</module>
Within client package in my EntrPoint class:
@AfterInitialization
public void start() {
Test test = new Test();
test.execute();
}
Test.java:
package com.mydomain.myapp.dev;
import javax.enterprise.context.Dependent;
import javax.inject.Inject;
import org.jboss.errai.ui.client.local.spi.TranslationService;
import com.google.gwt.user.client.Window;
@Dependent
public class Test {
@Inject
private TranslationService i18n;
public void execute() {
Window.alert("Executing Test");
}
}
Error I:
[0mERROR [org.jboss.msc.service.fail] MSC000001: Failed to start service jboss.deployment.unit."myapp.war".WeldStartService: org.jboss.msc.service.StartException in service jboss.deployment.unit."myapp.war".WeldStartService: Failed to start service
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_31]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_31]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_31]
Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type TranslationService with qualifiers @Default
at injection point [BackedAnnotatedField] @Inject private com.mydomain.myapp.dev.Test.i18n
com.mydomain.myapp.dev.Test.i18n(Test.java:0)
If i try to inject one of my services (Errai RPC) in the Test class - i get a different error: ->
Error II:
[ERROR] Error generating BootstrapperImpl
java.util.concurrent.ExecutionException: org.jboss.errai.ioc.rebind.ioc.exception.UnsatisfiedDependenciesException: @> com.mydomain.myapp.dev.Test
- field org.jboss.errai.codegen.meta.MetaField:Test.@javax.inject.Inject() private com.mydomain.myapp.shared.rpc.UserServices userService could not be satisfied for type: com.mydomain.myapp.shared.rpc.UserServices
Message: can't resolve bean: com.mydomain.myapp.shared.rpc.UserServices ( @Default )
I am using Errai 3.2.2.Final with Wildfly-8.2.0.Final (Started with EmbeddedWildFlyLauncher in Eclipse)
It seems like every attempt to inject something in Test.java fails. If i remove the injection points i can use the Test Class in my client package.
This is a working, deployable Errai setup / project - all things in the client, shared and server packages work as expected - only the newly added Test File in the "dev" package fails to work if i try to inject something
Are there any Errai or GWT configuration options to make this work?
Any hints?
Thanks!