NetBeans中调试期间的异常

时间:2017-03-15 16:20:21

标签: java hibernate gradle netbeans

我有一个具有以下依赖关系的gradle项目:

    compile "commons-codec:commons-codec:+"
    compile "commons-io:commons-io:+"
    compile "org.apache.poi:poi:+"
    compile "commons-logging:commons-logging:+"
    compile "net.sourceforge.cssparser:cssparser:+"
    compile "net.sourceforge.htmlunit:htmlunit:+"
    compile "net.sourceforge.htmlunit:htmlunit-core-js:+"
    compile "net.sourceforge.htmlunit:neko-htmlunit:+"
    compile "org.apache.commons:commons-lang3:+"
    compile "org.apache.httpcomponents:httpclient:+"
    compile "org.apache.httpcomponents:httpmime:+"
    compile "org.eclipse.jetty.websocket:websocket-client:+"
    compile "xalan:xalan:+"
    compile "org.apache.poi:poi:+"
    compile "org.apache.poi:poi-ooxml:+"
    compile "org.apache.cassandra:cassandra-all:+"
    compile "org.apache.cassandra:cassandra-thrift:+"
   compile "com.whalin:Memcached-Java-Client:+"
   compile "org.hibernate:hibernate-gradle-plugin:+"
   compile "org.hibernate:hibernate-core:+"
   compile "org.hibernate:hibernate-tools:+"
   compile "org.hibernate:hibernate-entitymanager:+"
   compile "org.hibernate:hibernate:+"
   compile "org.hibernate:hibernate-annotations:+"
   compile "mysql:mysql-connector-java:+"
   compile "org.hibernate:ejb3-persistence:+"
   compile "javax:javaee-api:+"
   compile "javax.persistence:persistence-api:+"
   compile "javassist:javassist:+"

我无法使用NetBeans IDE在调试模式下运行它,当我尝试时,我遇到以下异常:

18:54:28.174 [main] DEBUG o.h.cfg.annotations.PropertyBinder - Building property year_end
Exception in thread "main" java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
    at org.hibernate.cfg.annotations.EntityBinder.processComplementaryTableDefinitions(EntityBinder.java:1106)

为什么?

我的问题很独特,因为它不是关于编译的。我的程序编译好以下(gradle)代码:

task compileJar(type: Jar) {
    manifest {
        attributes 'Implementation-Title': 'Applic version 0.9',
            'Implementation-Version': version,
            'Main-Class': 'com.company.runfile'
    }
    baseName = project.name + '-all'
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar
    exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA' 
}

这会创建正确运行的jar文件,但我无法在NetBeans中调试相同的应用程序(也在Intellij IDEA中)。

1 个答案:

答案 0 :(得分:0)

stackoverflow中有很多答案可以解决这个问题。

JB Nizet已经挖掘了这个问题,并告诉根本原因和解决方案程序如下:

  

Hibernate 4.3是第一个实现JPA 2.1规范的版本(部分   Java EE 7)。因此它期待着JPA 2.1库   classpath,而不是JPA 2.0库。这就是你得到这个例外的原因:   Table.indexes()是JP的新属性,在JPA 2.1中引入

您可以查看相关答案:

  1. NoSuchMethodError in javax.persistence.Table.indexes()[Ljavax/persistence/Index
  2. java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;