java.lang.VerifyError:期望分支目标29处的stackmap帧

时间:2016-03-29 07:46:18

标签: java java-7 sonicmq sonic

异常详细信息:

位置:     com / sonicsw / mf / comm / jms / ConnectorClient.setRequestTimeout(J)V @ 3:ifnonnull   原因:     此位置的预期堆栈图帧。

at com.sonicsw.jndi.mfcontext.MFContext.<init>(MFContext.java:101)
at com.sonicsw.jndi.mfcontext.MFContextFac

任何人都可以解决此问题吗?谷歌搜索了一个多星期,并尝试了所有可能的替代方案。使用-XX:-UseSplitVerifier。它也不起作用。使用noverify选项,它可以正常工作。 Java版本是1.7.0_51。使用7.6声波库可以正常工作。我们最近将这些库从7.6升级到2015年,之后我们收到了这个错误。

1 个答案:

答案 0 :(得分:0)

当我将我的应用程序从1.6迁移到1.7时,我也遇到了同样的挑战。 经过巨大的斗争,我们找到了解决这个问题的方法。

方法1:您可以使用-XX:-UseSplitVerifier参数将解决此问题,您无需担心升级库文件。

方法2:我已按照以下步骤克服了这个问题。 步骤1:确定并保留应用程序使用的外部库列表。 步骤2:确定列表后,继续逐个删除外部库文件并插入升级版本库文件,这将帮助您隔离可能导致问题的库。 在我的情况下:j2ee.jar和openjpa-1.2.2 jar文件创建了一个问题,然后我升级了这些已解决迁移问题的库。

因此,找出造成问题的图书馆并将其逮捕,这是一个缓慢而痛苦的过程。

我希望,这些信息可能有用,因为它基于我的实时经验。