0

i ran into a dependency conflict, when i try to include the following dependency in my maven pom.xml:

    <dependency>
        <groupId>org.glassfish.main.extras</groupId>
        <artifactId>glassfish-embedded-all</artifactId>
        <scope>provided</scope>
    </dependency>

If I leave it out, everything works fine and the deltaspike testrunner works great. Because I need the glassfish dependency I would appreciate every hint, that would help me to work around this issue. I added the Stacktrace and the dependencies ...

org.jboss.weld.resources.spi.ResourceLoadingException: java.lang.NoClassDefFoundError: Lorg/slf4j/cal10n/LocLogger;
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at java.lang.Class.getDeclaredFields0(Native Method)
    at java.lang.Class.privateGetDeclaredFields(Class.java:2397)
    at java.lang.Class.getDeclaredFields(Class.java:1806)
    at org.jboss.weld.environment.se.discovery.url.WeldSEResourceLoader.classForName(WeldSEResourceLoader.java:53)
    at org.jboss.weld.environment.se.Weld.initialize(Weld.java:141)
    at org.apache.deltaspike.cdise.weld.WeldContainerControl.boot(WeldContainerControl.java:65)
    at org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$ContainerAwareTestContext.applyBeforeClassConfig(CdiTestRunner.java:455)
    at org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$BeforeClassStatement.evaluate(CdiTestRunner.java:360)
    at org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$AfterClassStatement.evaluate(CdiTestRunner.java:387)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
    at org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner.run(CdiTestRunner.java:136)
    at org.junit.runners.Suite.runChild(Suite.java:128)
    at org.junit.runners.Suite.runChild(Suite.java:24)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:136)
    at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.createReqestAndRun(JUnitCoreWrapper.java:139)
    at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.executeEager(JUnitCoreWrapper.java:111)
    at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:84)
    at org.apache.maven.surefire.junitcore.JUnitCoreProvider.invoke(JUnitCoreProvider.java:141)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray2(ReflectionUtils.java:208)
    at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:158)
    at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:86)
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:95)

This my pom file:

<dependencies>
    <!-- Configuration of DeltaSpike Core -->
    <dependency>
        <groupId>org.apache.deltaspike.core</groupId>
        <artifactId>deltaspike-core-api</artifactId>
        <version>${deltaspike.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.deltaspike.core</groupId>
        <artifactId>deltaspike-core-impl</artifactId>
        <version>${deltaspike.version}</version>
        <scope>runtime</scope>
    </dependency> 

    <!--  Test Control Module -->
    <dependency>
        <groupId>org.apache.deltaspike.modules</groupId>
        <artifactId>deltaspike-test-control-module-api</artifactId>
        <version>${deltaspike.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.deltaspike.modules</groupId>
        <artifactId>deltaspike-test-control-module-impl</artifactId>
        <version>${deltaspike.version}</version>
        <scope>test</scope>
    </dependency>

    <!-- JBoss Weld (RI) -->
    <dependency>
        <groupId>org.apache.deltaspike.cdictrl</groupId>
        <artifactId>deltaspike-cdictrl-weld</artifactId>
        <version>${deltaspike.version}</version>
        <scope>runtime</scope>
    </dependency>



    <!-- JUnit -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.10</version>
    </dependency>                
    <dependency>
        <groupId>net.sf.dozer</groupId>
        <artifactId>dozer</artifactId>
    </dependency>
    <dependency>
        <groupId>de.jollyday</groupId>
        <artifactId>jollyday</artifactId>
    </dependency>
    <dependency>
        <groupId>org.glassfish.main.extras</groupId>
        <artifactId>glassfish-embedded-all</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.jboss.weld.se</groupId>
        <artifactId>weld-se-core</artifactId>
        <version>2.2.2.Final</version>
    </dependency>


</dependencies>
<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
    <plugins>
        <plugin>
        <!-- Maven problem while testRun, therefore exclude javaee from testing -->
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.14</version>
            <configuration>
                <classpathDependencyExcludes>
                    <classpathDependencyExclude>javax:javaee-api</classpathDependencyExclude>
                    <classpathDependencyExclude>org.slf4j:slf4j-agent,slf4j-cal10n,slf4j-ext</classpathDependencyExclude>
                </classpathDependencyExcludes>
            </configuration>
        </plugin> 
    </plugins>
</build>

John Ament
  • 11,595
  • 1
  • 36
  • 45

1 Answers1

1

The error you got says that you dont have org.slf4j.cal10n.LocLogger; on your classpath. Try do bring this dependency. Moreover in order to see and resolve conflicts, use

mvn dependency:tree -Dverbose -Dincludes=commons-collections

after analyzing the tree, you can exclude the conflicting dependency by using directive

Evgeny Makarov
  • 1,417
  • 1
  • 21
  • 41
  • If fact glassfish-embedded-all includes in the artefact the jar it doesn't use dependencies so you can not exclude in pom. – Mr_Thorynque Dec 16 '15 at 15:59