NoClassDefFoundError: Could not initialize class #47

Closed
satb opened this Issue Mar 4, 2014 · 2 comments

Comments

Projects
None yet
3 participants
@satb

satb commented Mar 4, 2014

Adding this plugin is throwing an error like this

Caused by NoClassDefFoundError: Could not initialize class com.tinkerpop.rexster.client.RexProClientFilter

Without the plugin everything works fine and the same class can be loaded without a problem. What could be wrong?

Using grails 2.3

Build.config is very simple

grails.servlet.version = "3.0" // Change depending on target container compliance (2.5 or 3.0)
grails.project.class.dir = "target/classes"
grails.project.test.class.dir = "target/test-classes"
grails.project.test.reports.dir = "target/test-reports"
grails.project.work.dir = "target/work"
grails.project.target.level = 1.6
grails.project.source.level = 1.6
//grails.project.war.file = "target/${appName}-${appVersion}.war"

grails.project.fork = [
    // configure settings for compilation JVM, note that if you alter the Groovy version forked compilation is required
    //  compile: [maxMemory: 256, minMemory: 64, debug: false, maxPerm: 256, daemon:true],

    // configure settings for the test-app JVM, uses the daemon by default
    test: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, daemon:true],
    // configure settings for the run-app JVM
//    run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
    // configure settings for the run-war JVM
    war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
    // configure settings for the Console UI JVM
    console: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256]
]

grails.project.dependency.resolver = "maven" // or ivy
grails.project.dependency.resolution = {
    // inherit Grails' default dependencies
    inherits("global") {
        // specify dependency exclusions here; for example, uncomment this to disable ehcache:
        // excludes 'ehcache'
    }
    log "error" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose'
    checksums true // Whether to verify checksums on resolve
    legacyResolve false // whether to do a secondary resolve on plugin installation, not advised and here for backwards compatibility

    repositories {
        inherits true // Whether to inherit repository definitions from plugins

        grailsPlugins()
        grailsHome()
        mavenLocal()
        grailsCentral()
        mavenCentral()
        mavenRepo 'http://maven.restlet.org'
        // uncomment these (or add new ones) to enable remote dependency resolution from public Maven repositories
        //mavenRepo "http://repository.codehaus.org"
        //mavenRepo "http://download.java.net/maven/2/"
        //mavenRepo "http://repository.jboss.com/maven2/"
    }

    dependencies {
        // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes e.g.
        // runtime 'mysql:mysql-connector-java:5.1.27'
        // runtime 'org.postgresql:postgresql:9.3-1100-jdbc41'
        runtime 'com.tinkerpop.rexster:rexster-protocol:2.5.0-SNAPSHOT'
        runtime 'org.postgresql:postgresql:9.3-1100-jdbc41'
    }

    plugins {
        // plugins for the build system only
        build ":tomcat:7.0.50"

        // plugins for the compile step
        compile ":scaffolding:2.0.1"
        compile ':cache:1.1.1'

        // plugins needed at runtime but not for compilation
        runtime ":hibernate:3.6.10.7" // or ":hibernate4:4.1.11.6"
        runtime ":database-migration:1.3.8"
        runtime ":jquery:1.10.2.2"
        runtime ":resources:1.2.1"
        runtime ':jaxrs:0.10'
        // Uncomment these (or add new ones) to enable additional resources capabilities
        //runtime ":zipped-resources:1.0.1"
        //runtime ":cached-resources:1.1"
        //runtime ":yui-minify-resources:0.1.5"
    }
}

Simply commenting out the jaxrs: 0.10 will cause the loading problem to go away. Is it a class loader issue?

@davidecavestro

This comment has been minimized.

Show comment
Hide comment
@davidecavestro

davidecavestro Mar 4, 2014

Collaborator

It could be due to some missing dependency in that phase, so it could be related to both the contents of your class and some class it depends on (some imports). I'd say that the jaxrs plugin probably introduces some dependencies (possibly a new version of an artifact you already depend upon) that misses some code indirectly needed by your class.

You could add -verbose:class to your java opts in order to log classloading events, i.e.
export GRAILS_OPTS="$GRAILS_OPTS -verbose:class"
Or even better you could debug to see the cause of the NoClassDefFoundError. As you said it is related to class loading, and should happen when the classloader is loading RexProClientFilter, but since the JVM doesn't give use more details, I guess the best way to find the cause is debugging.

Collaborator

davidecavestro commented Mar 4, 2014

It could be due to some missing dependency in that phase, so it could be related to both the contents of your class and some class it depends on (some imports). I'd say that the jaxrs plugin probably introduces some dependencies (possibly a new version of an artifact you already depend upon) that misses some code indirectly needed by your class.

You could add -verbose:class to your java opts in order to log classloading events, i.e.
export GRAILS_OPTS="$GRAILS_OPTS -verbose:class"
Or even better you could debug to see the cause of the NoClassDefFoundError. As you said it is related to class loading, and should happen when the classloader is loading RexProClientFilter, but since the JVM doesn't give use more details, I guess the best way to find the cause is debugging.

@budjb budjb referenced this issue in budjb/grails-jaxrs Mar 31, 2016

Closed

NoClassDefFoundError: Could not initialize class #12

@budjb

This comment has been minimized.

Show comment
Hide comment
@budjb

budjb Mar 31, 2016

Collaborator

This issue was moved to budjb/grails-jaxrs#12

Collaborator

budjb commented Mar 31, 2016

This issue was moved to budjb/grails-jaxrs#12

@budjb budjb closed this Mar 31, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment