[shrinkwrap-issues] [JBoss JIRA] (SHRINKRES-211) java.lang.NoClassDefFoundError: com/google/protobuf/GeneratedMessage

Antimo Di Comite (JIRA) issues at jboss.org
Sun Oct 12 06:02:35 EDT 2014


Antimo Di Comite created SHRINKRES-211:
------------------------------------------

             Summary: java.lang.NoClassDefFoundError: com/google/protobuf/GeneratedMessage
                 Key: SHRINKRES-211
                 URL: https://issues.jboss.org/browse/SHRINKRES-211
             Project: ShrinkWrap Resolvers
          Issue Type: Bug
          Components: maven
    Affects Versions: 2.1.0
         Environment: Windows 7
            Reporter: Antimo Di Comite


I'm having trouble creating a JUnit test using a pom.xml dependency.

The test are being run with Arquillian

@RunWith(Arquillian.class)

In this method

@Deployment
public static JavaArchive createDeployment() {
First, I create a JavaArchive with the package of the project I'm testing

   JavaArchive merge =  ShrinkWrap.create(JavaArchive.class).
            addPackages(true,
                    "migrazioneGeaPersistenzaTampone",
                    "migrazioneGeaPersistenza",
                    "it.**.mistral.importGEA4.task",
                    "migrazioneGeaPersistenzaAccess"
            ).
           addClasses(java.sql.Connection.class)
            .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
Then when I launch the test, there are some missing dependencies

Unable to resolve any beans for Types: [class it.**.**.be.service.EnvironmentRootService]
present in this dependency

      <dependency>
        <groupId>it.**.mistral</groupId>
        <artifactId>mistral-be</artifactId>
        <version>0.1.0</version>
        <scope>compile</scope>  
     </dependency>

I have tried lots of different things to add these dependencies, the best one seems to be using the ShrinkWrap Resolvers (https://github.com/shrinkwrap/resolver/blob/master/README.asciidoc, particullarry this paragraph https://github.com/shrinkwrap/resolver/blob/master/README.asciidoc#resolution-of-artifacts-defined-in-pom-files)

a)

JavaArchive[] archives = Maven.resolver().loadPomFromFile(path_to_pom_file). importDependencies(ScopeType.TEST,ScopeType.COMPILE). resolve().withTransitivity().as(JavaArchive.class);

or

Maven.resolver().loadPomFromFile("/path/to/pom.xml").importRuntimeDependencies() .resolve().withTransitivity().asFile();

The dependency is ignored in either way (i'm missing something?)

b)

JavaArchive[] mistral_be = Maven.configureResolver().workOffline(). resolve("it.**.mistral:mistral-be:0.1.0").withTransitivity().as(JavaArchive.class);
for (int i = 0; i < mistral_be.length ; i++) {
merge = merge.merge(mistral_be[i]);
}

With a simple

System.out.println(merge.toString(true));
I can see that all files from dependencies are present! Anyway I use local repository workoffline() Maybe I am missing some dependencies?

But exiting the method with a

return merge;
throws a "java.lang.NoClassDefFoundError: com/google/protobuf/GeneratedMessage....Caused by: java.lang.ClassNotFoundException: com.google.protobuf.GeneratedMessage" error.

Adding another dependencies to protobuf :
// Trym'g to add protobuf dependencies
JavaArchive[] prtoo_buf = Maven.configureResolver().withMavenCentralRepo(true).resolve("com.google.protobuf:protobuf-java:2.3.0").withTransitivity().as(JavaArchive.class);
        for (int i = 0; i < prto_buf.length ; i++) {
            projectPackages = projectPackages.merge(proto_buf[i]);
        }

Keep ending with the same error
throws a "java.lang.NoClassDefFoundError: com/google/protobuf/GeneratedMessage




--
This message was sent by Atlassian JIRA
(v6.3.1#6329)


More information about the shrinkwrap-issues mailing list