tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michiel Graat <Michiel.Gr...@sidn.nl>
Subject RE: ClassNotFoundExceptions on more than two Arquillian tests
Date Mon, 30 Sep 2013 14:46:56 GMT
Hi Romain,

I am not entirely sure how to force the versions. The problem is that Shrinkwrap 1.0.0-beta-7
(in Arquillian 1.0.3) needs the API defined in Aether 1.8, and Arquillian-tomee-remote needs
the API defined in Aether 1.13.1. These API's are not compatible at all. If I define the Maven
dependencies in such a way that only Aether 1.8 is used, Arquillian-tomee-remote does not
work, and if only Aether 1.13.1 is used, Arquillian 1.0.3 does not work. As far as I know
I cannot have both versions on my classpath or am I mistaken?

Kind regards,

Michiel

-----Original Message-----
From: Romain Manni-Bucau [mailto:rmannibucau@gmail.com] 
Sent: vrijdag 20 september 2013 14:34
To: users@tomee.apache.org
Subject: Re: ClassNotFoundExceptions on more than two Arquillian tests

Hi

basically with arquillian just align versions on the adapter you use otherwise you likely
have issues.
In tomee 1.5 adapters (no more true for trunk) we were using aether to find tomee automatically
and then shrinkwrap used it too with an old version leading to the issue you speak about.
Maybe force it in the pom (deps are here http://svn.apache.org/repos/asf/tomee/tomee/trunk/utils/openejb-provisionning/pom.xml
 )

*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/9/20 Michiel Graat <Michiel.Graat@sidn.nl>

> Hi Romain,
>
> I downgraded to 1.0.3 but which version of Shrinkwrap should I use in 
> that case? I tried 1.0.0-beta-7, 2.0.0-alpha-5, 2.0.0-alpha-6 and 
> 2.0.0, which al lead to problems.
>
> 1.0.0-beta-7, which is the version used in Arquillian 1.0.3, results 
> in an
> error:
>
> java.lang.NoClassDefFoundError: 
> org/sonatype/aether/impl/SyncContextFactory
>
> The cause seems to be a version clash between Shrinkwrap and 
> Arquillian-tomee-remote which use aether 1.8 and 1.13.1 respectively:
>
>  [INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ dbs --- 
> [INFO] foo.bar:dbs:war:0.0.1-SNAPSHOT [INFO] +- 
> org.jboss.shrinkwrap.resolver:shrinkwrap-resolver-impl-maven:jar:1.0.0
> -beta-7:compile [INFO] |  +- 
> org.sonatype.aether:aether-api:jar:1.8:compile
> [INFO] |  +- org.sonatype.aether:aether-util:jar:1.8:compile
> [INFO] |  |  \- (org.sonatype.aether:aether-api:jar:1.8:compile - 
> omitted for duplicate) [INFO] |  +- 
> org.sonatype.aether:aether-connector-wagon:jar:1.8:compile
> [INFO] |  |  +- (org.sonatype.aether:aether-api:jar:1.8:compile - 
> omitted for duplicate) [INFO] |  |  +- 
> org.sonatype.aether:aether-spi:jar:1.8:compile
> [INFO] |  |  |  \- (org.sonatype.aether:aether-api:jar:1.8:compile - 
> omitted for duplicate) [INFO] |  |  \- 
> (org.sonatype.aether:aether-util:jar:1.8:compile - omitted for 
> duplicate) [INFO] |  \- 
> org.apache.maven:maven-aether-provider:jar:3.0.1:compile
> [INFO] |     +- (org.sonatype.aether:aether-api:jar:1.8:compile - omitted
> for duplicate)
> [INFO] |     +- (org.sonatype.aether:aether-spi:jar:1.8:compile - omitted
> for duplicate)
> [INFO] |     +- (org.sonatype.aether:aether-util:jar:1.8:compile - omitted
> for duplicate)
> [INFO] |     \- org.sonatype.aether:aether-impl:jar:1.8:compile
> [INFO] |        +- (org.sonatype.aether:aether-api:jar:1.8:compile -
> omitted for duplicate)
> [INFO] |        +- (org.sonatype.aether:aether-spi:jar:1.8:compile -
> omitted for duplicate)
> [INFO] |        \- (org.sonatype.aether:aether-util:jar:1.8:compile -
> omitted for duplicate)
> [INFO] \- org.apache.openejb:arquillian-tomee-remote:jar:1.5.2:compile
> [INFO]    \- org.apache.openejb:arquillian-tomee-common:jar:1.5.2:compile
> [INFO]       \- org.apache.openejb:openejb-provisionning:jar:4.5.2:compile
> [INFO]          +- (org.sonatype.aether:aether-api:jar:1.13.1:compile -
> omitted for conflict with 1.8)
> [INFO]          +- (org.sonatype.aether:aether-spi:jar:1.13.1:compile -
> omitted for conflict with 1.8)
> [INFO]          +- (org.sonatype.aether:aether-util:jar:1.13.1:compile -
> omitted for conflict with 1.8)
> [INFO]          +- (org.sonatype.aether:aether-impl:jar:1.13.1:compile -
> omitted for conflict with 1.8)
> [INFO]          \-
> (org.sonatype.aether:aether-connector-wagon:jar:1.13.1:compile - 
> omitted for conflict with 1.8)
>
> I do not know how to resolve this version clash. 
> arquillian-tomee-remote needs 1.13.1 (hence the NoClassDefFoundError) and Shrinkwrap
needs 1.8.
> These versions of aether seem to have completely incompatible API's. 
> If I manually copy the 1.13.1 JAR into my repository all tests somehow 
> work, but obviously I do not want to have to copy that JAR manually 
> every time I update my repository. Any idea if this version clash 
> problem can be resolved?
>
> I also tried 2.0.0-alpha-5 because it seems to be the version you guys 
> use according to 
> http://svn.apache.org/repos/asf/tomee/tomee/trunk/arquillian/arquillian-tomee-tests/pom.xml.
> However, in this case I get a  RunTimeException:
>
> java.lang.RuntimeException: Could not invoke deployment method: public 
> static org.jboss.shrinkwrap.api.spec.WebArchive
> nl.sidn.dbs.test.ArquillianTest.createDeployment()
> -- snip --
> Caused by: java.lang.IllegalArgumentException: Packaging type zip is 
> not supported.
>
> In this case the problem seems to be that my pom contains the 
> following entry (it is the only entry with type 'zip'), which I need of course:
>
> <dependency>
>         <groupId>org.apache.openejb</groupId>
>         <artifactId>apache-tomee</artifactId>
>         <version>${tomee.version}</version>
>         <classifier>${tomee.classifier}</classifier>
>         <type>zip</type>
> </dependency>
>
> Because of this problem I decided to try a slightly newer version, 
> 2.0.0-alpha-6. This results in the same problems I had before, but 
> before the hsqldb-related problems start a different exception is thrown:
>
> java.lang.ClassCastException:
> org.apache.tomee.myfaces.TomEEAnnotationProviderFactory cannot be cast 
> to org.apache.myfaces.spi.AnnotationProviderFactory
>
> I am including the myfaces-api and myfaces-impl as provided 
> dependencies in my pom, so it could be related to that. Full logs for 
> 2.0.0-alpha-6 can be found here: http://pastebin.com/Zk8hVeAw.
>
> Trying 2.0.0 leads to the same problems as I had before, for 
> completeness sake I uploaded the logs: http://pastebin.com/SsjtDgu5
>
> Kind regards,
>
> Michiel
>
> -----Original Message-----
> From: Romain Manni-Bucau [mailto:rmannibucau@gmail.com]
> Sent: donderdag 19 september 2013 17:48
> To: users@tomee.apache.org
> Subject: Re: ClassNotFoundExceptions on more than two Arquillian tests
>
> Hi
>
> arquillian 1.1.1 doesn't work with tomee 1.5.2, keep using 1.0.3.
>
> *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/9/19 John D. Ament <john.d.ament@gmail.com>
>
> > Michiel,
> >
> > Just wondering, are you including hsqldb in your war file?
> >
> > John
> >
> > On Thu, Sep 19, 2013 at 11:10 AM, Michiel Graat 
> > <Michiel.Graat@sidn.nl>
> > wrote:
> > > Hi guys,
> > >
> > > I have been trying to use Arquillian/TomEE but I have run into a 
> > > strange
> > problem. Whenever I try to run more than two arquillian testclasses 
> > in one testrun I get ClassNotFoundExceptions for the 
> > org.hsqldb.jdbc.Util
> class.
> > If I run the testclasses separately or two at a time everything 
> > works
> fine.
> > >
> > > I use arquillian 1.1.1.Final with TestNG, arquillian-tomee-remote
> > > 1.5.2
> > for webprofile and shrinkwrap 2.0.0. My deployment method looks like
> this:
> > >
> > > @Deployment
> > > public static WebArchive createDeployment() { File[] deps =
> > > Maven.resolver()
> > > .loadPomFromFile("pom.xml")
> > > .importRuntimeAndTestDependencies()
> > > .resolve().withTransitivity().asFile();
> > >
> > > return ShrinkWrap.create(WebArchive.class, "dbs.war")
> > >         .addPackages(true, "foo.bar.dbs")
> > >         .addAsManifestResource("META-INF/test-persistence.xml",
> > "persistence.xml")
> > >         .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml")
> > >         .addAsLibraries(deps)
> > >         .addAsResource("messages_nl.properties",
> > "messages_nl.properties");
> > > }
> > >
> > > I remember seeing HSQLDB lock errors when trying to run more than 
> > > two
> > testclasses but I cannot seem to reproduce them anymore.
> > >
> > > You can find a log of a failed run here (split into 3 parts, 
> > > because its
> > > 1 MB total, lots of repetition of stacktraces though), in it I try 
> > > to run
> > three tests:
> > >
> > > http://pastebin.com/KvQtJ6LH (part 1) http://pastebin.com/Ww6rSDGw 
> > > (part 2)
> > > http://pastebin.com/6YpdKXq4 (part 3)
> > >
> > > A successful run (two tests) can be found here:
> > >
> > > http://pastebin.com/2HBnAKPw
> > >
> > > This problem has kept me occupied for days now but I cannot seem 
> > > to find
> > the cause or a solution. Do you guys have any idea?
> > >
> > > Kind regards,
> > >
> > > Michiel
> >
>

Mime
View raw message