如何解决java.lang.VerifyError:期待堆栈图框架和错误:元素名称空间冲突
我们正在将应用程序jdk版本从jdk 1.6迁移到jdk1.8,并且在应用程序中使用的是jibx 1.2.2。
但是Jibx编译失败并出现以下错误,
[bind] Running binding compiler version jibx_1_2_2
[bind] Error running binding compiler
[bind] java.lang.IllegalStateException: Error loading class java.lang.CharSequence: Error reading path java/lang/CharSequence.class for class java.lang.CharSequence
[bind] at org.jibx.binding.classes.ClassCache$ClassCacheLocator.getClassInfo(ClassCache.java:291)
[bind] at org.jibx.binding.model.ClassHierarchyContext.accumulateInterfaces(ClassHierarchyContext.java:95)
[bind] at org.jibx.binding.model.ClassHierarchyContext.addTypedComponent(ClassHierarchyContext.java:121)
[bind] at org.jibx.binding.model.DefinitionContext.addFormat(DefinitionContext.java:529)
[bind] at org.jibx.binding.model.BindingElement.defineBaseFormat(BindingElement.java:843
经过一些谷歌搜索和浏览邮件列表后,了解到bcel 5.x版本在jdk 1.8中存在问题
所以我遵循以下两种方法
1) upgraded bcel 5.x har to bcel-6.0.jar But ended up with below error,[bind] com.abc.model.external.GetList output file size is 5496 bytes
[bind] Error running binding compiler
[bind] java.lang.VerifyError: Expecting a stackmap frame at branch target 12
[bind] Exception Details:
[bind] Location:
[bind] com/abc/model/external/GetList.JiBX_FOSbinding_newinstance_1_0(Lcom/abc/model/external/ /GetList;Lorg/jibx/runtime/impl/UnmarshallingContext;)Lcom/model/external/GetList; @1: ifnonnull
[bind] Reason:
[bind] Expected stackmap frame at this location.
[bind] Bytecode:
[bind] 0x0000000: 2ac7 000b bb00 0559 b700 284b 2ab0
[bind] at java.lang.Class.getDeclaredMethods0(Native Method)
[bind] at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
[bind] at java.lang.Class.getDeclaredMethods(Class.java:1975)
-
upgraded jibx version from 1.2.2 to 1.3.3
这里的问题是我所有的绑定文件,由于jibx验证错误,我们有70多个错误。几个修复程序似乎就像重复的名称空间, 我在这里附上样本。
我的问题是,为什么在使用jibx 1.2.2时不出现此验证错误?使用jibx1.3.3时可以抑制这些验证错误吗? 下面的错误示例,
[bind] Error: Conflicting element namespaces; on namespace element at (line 4,col 85,in CUpdate -binding.xml)
[bind] Error: Conflicting element namespaces; on namespace element at (line 2,col 98,in CUpdate _StandardHeaderBinding.xml)
[bind] Error: No namespace definition for URI http://intra.abc.com/css/2008/09; on structure element at (line 18,col 117,in CUpdate-binding.xml)
[bind] Error running binding compiler
[bind] org.jibx.runtime.JiBXException: Binding CUpdate -binding.xml is unusable because of validation errors
[bind] at org.jibx.binding.Utility.loadBinding(Utility.java:358)
[bind] at org.jibx.binding.Utility.loadFileBinding(Utility.java:420)
[bind] at org.jibx.binding.Compile.compile(Compile.java:217)
[bind] at org.jibx.binding.ant.CompileTask.execute(CompileTask.java:248)
[bind] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
[bind] at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
请帮助解决此问题。
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。