Hi

are you sure you have a beans.xml in these jar, in your war etc?

*Romain Manni-Bucau*
*Twitter: @rmannibucau <https://twitter.com/rmannibucau>*
*Blog: **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com/>
*LinkedIn: **http://fr.linkedin.com/in/rmannibucau*
*Github: https://github.com/rmannibucau*



2013/8/21 Dormouse <rabbith...@live.nl>

> Hi,
>
> I am currently working on an enterprise project and am now adding
> integration tests. For this I use Arquillian on a TomEE 1.5.2 runtime.
> Everything is working fine in production. Also, I have followed the
> Arquillian quickstart and TomEE integration steps. To construct my
> deployments, I use Shrinkwrap.
> Now I'm trying to test a stateless session bean doing some persistence
> stuff. My problem is that the bean doesn't get injected in my test class by
> CDI.
> The following exception is always given:
>
> Caused by: javax.enterprise.inject.UnsatisfiedResolutionException: Api type
> [storage.DatabaseUserStorage] is not found with the qualifiers
> Qualifiers: [@javax.enterprise.inject.Default()]
> for injection into Field Injection Point, field name :
>  databaseUserStorage,
> Bean Owner : [DatabaseUserStorageTest, Name:null, WebBeans Type:ENTERPRISE,
> API
>
> Types:[java.lang.Object,integrationtest.DatabaseUserStorageTest,java.io.Serializable],
> Qualifiers:[javax.enterprise.inject.Any,javax.enterprise.inject.Default]]
>         at
>
> org.apache.webbeans.util.InjectionExceptionUtils.throwUnsatisfiedResolutionException(InjectionExceptionUtils.java:77)
>         at
>
> org.apache.webbeans.container.InjectionResolver.checkInjectionPoints(InjectionResolver.java:193)
>         at
>
> org.apache.webbeans.container.BeanManagerImpl.validate(BeanManagerImpl.java:1034)
>         at
> org.apache.openejb.cdi.BeansDeployer.validate(BeansDeployer.java:269)
>         at
>
> org.apache.openejb.cdi.BeansDeployer.validateInjectionPoints(BeansDeployer.java:222)
>         at
>
> org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(OpenEJBLifecycle.java:277)
>         ... 95 more
>
> I have tried all packaging variants: jar (EJB, but unable to add libs), war
> and ear. All resulting in the UnsatisfiedResolutionException. So even when
> the test and tested classes are in the same package/jar the exception
> occurs.
> For my ear, I currently have the following structure:
>
> 2f122664-3a9e-4d74-aad4-970d64a3defd.ear:
> /lib/
> /lib/slf4j-api-1.6.2.jar
> /lib/entity-2616676154132726393.jar
> /lib/slf4j-log4j12-1.6.2.jar
> /lib/interaction-1265438374661770973.jar
> /lib/jdto-1.4.jar
> /lib/log4j-1.2.16.jar
> /lib/validation-api-1.0.0.GA.jar
> /lib/dto-8038385114298401761.jar
> /lib/commons-lang-2.4.jar
> /storage-365778680947729509.jar
> /messaging-0.0.1-SNAPSHOT.jar
> /META-INF/
> /META-INF/beans.xml
>
> Note that an EJB in storage-365778680947729509.jar gets injected in
> /lib/interaction-1265438374661770973.jar, where its interface is defined.
> Some IoC magic to make storage pluggable. Some
> implementations seem to have problems with that (WebLogic, GlassFish) but
> not TomEE and JBoss.
>
> The bean I want to test resides in storage-365778680947729509.jar,
> registered with the JNDI name
>
> Jndi(name=global/2f122664-3a9e-4d74-aad4-970d64a3defd/storage-365778680947729509/DatabaseUserStorage!interaction.UserStorageGateway)
> --> Ejb(deployment-id=DatabaseUserStorage).
> Could it be that the EJB cannot be injected with either @Inject or @EJB,
> because of the weird JNDI naming and/or it's located in another jar?
> If so, how can this be resolved. If not, what could it be? The location of
> my test class? Class files (i.e. my test class) cannot be added to the ear,
> but the test still seems to run. When I replace
> @Inject with @EJB in my test class, I even get a NullPointerException in my
> test method.
> Same thing with the war variant, NPE in test class with @EJB, URE in test
> class with @Inject. So the bean is registered, but cannot be resolved?
>
> A possible related post:
>
> http://stackoverflow.com/questions/17420953/arquillian-integration-tests-fails-with-unsatisfiedresolutionexception
> <
> http://stackoverflow.com/questions/17420953/arquillian-integration-tests-fails-with-unsatisfiedresolutionexception
> >
> (unanswered)
> Another:
>
> http://openejb.979440.n4.nabble.com/TomEE-1-5-1-SNAPSHOT-and-Arquillian-possible-problems-td4658337.html#a4658338
> <
> http://openejb.979440.n4.nabble.com/TomEE-1-5-1-SNAPSHOT-and-Arquillian-possible-problems-td4658337.html#a4658338
> >
> (removing the enricher worked? I'm not using it btw)
> Searching javax.enterprise.inject.UnsatisfiedResolutionException gave loads
> of results on the openejb forums, none of which seem to be able to help me.
>
> I am using TomEE embedded as my Arquillian runtime:
>
> <dependency>
>         <groupId>org.apache.openejb</groupId>
>         <artifactId>arquillian-tomee-embedded</artifactId>
>         <version>1.5.2</version>
>         <scope>test</scope>
> </dependency>
>
> My surefire definition is as follows:
>
> <plugin>
>         <groupId>org.apache.maven.plugins</groupId>
>         <artifactId>maven-surefire-plugin</artifactId>
>         <version>2.12</version>
>         <configuration>
>                 <systemPropertyVariables>
>                         <tomee.httpPort>-1</tomee.httpPort>
>                         <tomee.stopPort>-1</tomee.stopPort>
>                 </systemPropertyVariables>
>         </configuration>
> </plugin
>
> Thanks, Dormouse.
>
>
>
> --
> View this message in context:
> http://openejb.979440.n4.nabble.com/Testing-with-TomEE-Arquillian-and-CDI-UnsatisfiedResolutionException-tp4664750.html
> Sent from the OpenEJB User mailing list archive at Nabble.com.
>

Reply via email to