Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.VerifyError:在分支目标JDK 1.7处应为stackmap帧_Java_Jaxb_Java 7 - Fatal编程技术网

java.lang.VerifyError:在分支目标JDK 1.7处应为stackmap帧

java.lang.VerifyError:在分支目标JDK 1.7处应为stackmap帧,java,jaxb,java-7,Java,Jaxb,Java 7,升级到JDK 1.7后,我遇到以下异常: java.lang.VerifyError: Expecting a stackmap frame at branch target 71 in method com.abc.domain.myPackage.MyClass$JaxbAccessorM_getDescription_setDescription_java_lang_String.get(Ljava/lang/Object;)Ljava/lang/Object; at offset 20

升级到JDK 1.7后,我遇到以下异常:

java.lang.VerifyError: Expecting a stackmap frame at branch target 71 in method com.abc.domain.myPackage.MyClass$JaxbAccessorM_getDescription_setDescription_java_lang_String.get(Ljava/lang/Object;)Ljava/lang/Object; at offset 20
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2413)
    at java.lang.Class.getConstructor0(Class.java:2723)
    at java.lang.Class.newInstance0(Class.java:345)
    at java.lang.Class.newInstance(Class.java:327)
    at com.sun.xml.internal.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.instanciate(OptimizedAccessorFactory.java:184)
    at com.sun.xml.internal.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.get(OptimizedAccessorFactory.java:129)
    at com.sun.xml.internal.bind.v2.runtime.reflect.Accessor$GetterSetterReflection.optimize(Accessor.java:384)
    at com.sun.xml.internal.bind.v2.runtime.property.SingleElementLeafProperty.<init>(SingleElementLeafProperty.java:72)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at com.sun.xml.internal.bind.v2.runtime.property.PropertyFactory.create(PropertyFactory.java:113)
    at com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.<init>(ClassBeanInfoImpl.java:166)
    at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:494)
    at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:311)
    at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:126)
    at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1148)
    at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:130)
    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:601)
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:248)
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:235)
    at javax.xml.bind.ContextFinder.find(ContextFinder.java:445)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:637)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:584)
    at com.abc.domain.myPackage.MyClass.marshalFacetsTest(MyClass.java:73)
    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:601)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:128)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
    at org.testng.TestRunner.privateRun(TestRunner.java:767)
    at org.testng.TestRunner.run(TestRunner.java:617)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
    at org.testng.SuiteRunner.run(SuiteRunner.java:240)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1203)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1128)
    at org.testng.TestNG.run(TestNG.java:1036)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
java.lang.VerifyError:在方法com.abc.domain.myPackage.MyClass$JaxbAccessorM\u getDescription\u setDescription\u java\u lang\u String.get(Ljava/lang/Object;)Ljava/lang/Object;在偏移量20处
位于java.lang.Class.getDeclaredConstructors0(本机方法)
位于java.lang.Class.privateGetDeclaredConstructors(Class.java:2413)
位于java.lang.Class.getConstructor0(Class.java:2723)
位于java.lang.Class.newInstance0(Class.java:345)
位于java.lang.Class.newInstance(Class.java:327)
位于com.sun.xml.internal.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.Instanceate(OptimizedAccessorFactory.java:184)
位于com.sun.xml.internal.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.get(OptimizedAccessorFactory.java:129)
位于com.sun.xml.internal.bind.v2.runtime.reflect.Accessor$GetterSetterReflection.optimize(Accessor.java:384)
位于com.sun.xml.internal.bind.v2.runtime.property.SingleElementLeapProperty。(SingleElementLeapProperty.java:72)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:525)
位于com.sun.xml.internal.bind.v2.runtime.property.PropertyFactory.create(PropertyFactory.java:113)
位于com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.(ClassBeanInfoImpl.java:166)
位于com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:494)
位于com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.(JAXBContextImpl.java:311)
位于com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.(JAXBContextImpl.java:126)
位于com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1148)
位于com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:130)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:601)
位于javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:248)
位于javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:235)
位于javax.xml.bind.ContextFinder.find(ContextFinder.java:445)
位于javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:637)
位于javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:584)
位于com.abc.domain.myPackage.MyClass.MarshallFacetTest(MyClass.java:73)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:601)
位于org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
位于org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
位于org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
位于org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
位于org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:128)
位于org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
位于org.testng.TestRunner.privateRun(TestRunner.java:767)
位于org.testng.TestRunner.run(TestRunner.java:617)
位于org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
在org.testng.SuiteRunner.runSequential上(SuiteRunner.java:329)
位于org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
运行(SuiteRunner.java:240)
位于org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
位于org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
在org.testng.testng.runSuitesSequentially上(testng.java:1203)
位于org.testng.testng.runSuitesLocally(testng.java:1128)
位于org.testng.testng.run(testng.java:1036)
位于org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
位于org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
位于org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)

Java7引入了更严格的验证,并稍微更改了类格式,以包含用于验证代码正确性的堆栈映射。您看到的异常意味着某些方法没有有效的堆栈映射

Java版本或字节码插装都是罪魁祸首。通常这意味着应用程序使用的库会生成无法通过更严格验证的无效字节码。因此,开发人员只能将其作为bug报告给库

作为一种解决方法,您可以向JVM参数添加
-noverify
,以禁用验证。在Java 7中,也可以使用
-XX:-UseSplitVerifier
来使用不太严格的验证方法,但在Java 8中,该选项已被删除。

此链接非常有用。


最简单的方法是将JRE改为6。

很抱歉,我遇到了同样的问题,找到了更简单的解决方案

在Java编译器选项中,您需要取消选中“保留未使用(从不读取)的局部变量”,这样就不需要更改回目标JVM版本


这似乎是旧版本Eclipe中的一个bug。

如果您自己构建代码,那么这个问题可以通过向java编译器提供“-target 1.5”(或者通过在IDE或构建配置中设置相应的选项)来解决。

我遇到了这个问题,并尝试使用真正有效的标志
-noverify
。我
test {
  jvmArgs "-noverify"
}