簡體   English   中英

當我嘗試在生產環境上運行時,方法processOverridesBelongsTo上的ActiveJDBC Nullpointer異常

[英]ActiveJDBC Nullpointer exception on method processOverridesBelongsTo when I try to run on Production

我使用IntelliJ idea Ultimate 2018.2,我正在正常運行我的maven javafx桌面應用程序,但是當我編譯jar(帶有ant)以用於生產時,我在儀器部分得到了這個:

java.lang.NoClassDefFoundError: jdk/internal/reflect/ConstructorAccessorImpl
    at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:194)
    at org.apache.tools.ant.taskdefs.Java.run(Java.java:771)
    at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:221)
    at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:135)
    at org.apache.tools.ant.taskdefs.Java.execute(Java.java:108)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
    at jdk.internal.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:435)
    at org.apache.tools.ant.Target.performTasks(Target.java:456)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
    at org.apache.tools.ant.Main.runBuild(Main.java:851)
    at org.apache.tools.ant.Main.startAnt(Main.java:235)
    at org.apache.tools.ant.Main.start(Main.java:198)
    at org.apache.tools.ant.Main.main(Main.java:286)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at com.intellij.rt.ant.execution.AntMain2.main(AntMain2.java:30)
Caused by: java.lang.NoClassDefFoundError: jdk/internal/reflect/ConstructorAccessorImpl
    at java.base/jdk.internal.misc.Unsafe.defineClass0(Native Method)
    at java.base/jdk.internal.misc.Unsafe.defineClass(Unsafe.java:1192)
    at java.base/jdk.internal.reflect.ClassDefiner.defineClass(ClassDefiner.java:63)
    at java.base/jdk.internal.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:400)
    at java.base/jdk.internal.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:394)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/jdk.internal.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:393)
    at java.base/jdk.internal.reflect.MethodAccessorGenerator.generateConstructor(MethodAccessorGenerator.java:92)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:55)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
    at java.base/java.lang.reflect.Proxy.newProxyInstance(Proxy.java:1015)
    at java.base/java.lang.reflect.Proxy.newProxyInstance(Proxy.java:1001)
    at javassist.bytecode.annotation.AnnotationImpl.make(AnnotationImpl.java:72)
    at javassist.bytecode.annotation.Annotation.toAnnotationType(Annotation.java:295)
    at javassist.CtClassType.toAnnoType(CtClassType.java:675)
    at javassist.CtClassType.toAnnotationType(CtClassType.java:580)
    at javassist.CtClassType.getAnnotations(CtClassType.java:546)
    at javassist.CtClassType.getAnnotations(CtClassType.java:526)
    at org.javalite.instrumentation.Instrumentation.getDatabaseName(Instrumentation.java:89)
    at org.javalite.instrumentation.Instrumentation.generateModelsFile(Instrumentation.java:83)
    at org.javalite.instrumentation.Instrumentation.instrument(Instrumentation.java:66)
    at org.javalite.instrumentation.Main.main(Main.java:29)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:217)
    at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:152)
    ... 25 more
Caused by: java.lang.ClassNotFoundException: jdk.internal.reflect.ConstructorAccessorImpl
    at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1374)
    at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1323)
    at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1082)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
    ... 54 more

這是我關於ANT的工具:

<java classname="org.javalite.instrumentation.Main">
          <sysproperty key="outputDirectory" value="${ventas.output.dir}"/>
          <classpath refid="ventas.module.classpath"/>
</java>

它停止檢測,但是我直接在JAR上復制了檢測的類。 當我嘗試運行JAR時,我得到了:

Exception in Application start method
java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(Unknown Source)
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(Unknown Source)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at java.base/sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
Caused by: java.lang.RuntimeException: Exception in Application start method
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)
Caused by: org.javalite.activejdbc.InitException: java.lang.NullPointerException
        at org.javalite.activejdbc.Registry.init(Registry.java:154)
        at org.javalite.activejdbc.Registry.getMetaModel(Registry.java:103)
        at org.javalite.activejdbc.ModelDelegate.metaModelOf(ModelDelegate.java:307)
        at org.javalite.activejdbc.ModelDelegate.findFirst(ModelDelegate.java:243)
        at modelos.Funcionario.findFirst(Funcionario.java:2444)
        at utils.Pantallas.login(Pantallas.java:632)
        at UI.Main.start(Main.java:21)
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(Unknown Source)
        at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$11(Unknown Source)
        at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$9(Unknown Source)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(Unknown Source)
        at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
        at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(Unknown Source)
        ... 1 more
Caused by: java.lang.NullPointerException
        at org.javalite.activejdbc.Registry.processOverridesBelongsTo(Registry.java:379)
        at org.javalite.activejdbc.Registry.processOverrides(Registry.java:264)
        at org.javalite.activejdbc.Registry.init(Registry.java:145)
        ... 15 more
Exception running application UI.Main

我使用Java 10,嘗試使用Java 9,但同樣,Java 8與其他項目庫不兼容。 使用activeJDBC 2.2

有人可以告訴我我做錯了什么還是應該執行JAR怎么辦?

首先,您需要發布ventas.module.classpath的內容。 其次,ActiveJDBC v 2.2 支持Java版本8

如果由於其他原因而無法降級到Java 8,則至少需要通過刪除其他依賴項來進行嘗試,然后嘗試在Java 8上復制此問題。ActiveJDBC確實在Java 9上非正式運行,因此,也許您還有另一個問題與您如何上課。

另外,如果您在項目中使用Maven,為什么不同時使用它進行檢測呢? 請參閱: http//javalite.io/instrumentation#maven-instrumentation-plugin

另外,您說“ 儀器停止 ”-尚不清楚是完成儀器還是在中間停止? 手動構建jar文件時,請不要忘記包含在檢測過程中生成的文件activejdbc_models.properties

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM