打开自定义iView时出现" java.lang.VerifyError:期待堆栈映射框架"

2020-09-02 15:41发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家您好,

我已经使用JSP DynPage概念(即门户组件扩展了PageProcessorComponent以及用于与JSP交换数据的Java bean)开发了iView。 多年来,它在NW 7.3和NW 7.4上均能完美运行。

在NW 7.5上,打开iview时遇到以下错误:

 500内部服务器错误
 信息:
 无法处理对[irj] Web应用程序中的servlet [prt]的HTTP请求。
 [例外]
 java.lang.VerifyError:需要一个堆栈映射框架
 异常详细信息:
   位置:
     PRT_jsp_WEB_2d_INF_pagelet_FsIntegrationAdmin_1498722360657._doContent(Lcom/sapportals/portal/prt/component/IPortalComponentRequest; Lcom/sapportals/portal/prt/component/IPortalComponentResponse;)V @ 31559:nop
   原因:
     在此位置的预期堆栈图框架。
 字节码:
     0x0000000:1307 15b8 0712 3aae 2b03 b900 0b02 0012
 .... 

此错误似乎表明字节码有问题。

到目前为止,这些是我的发现:

  • 该门户组件是使用源和目标1.8与Oracle JDK 1.8一起编译的
  • 门户网站在首次访问时编译的类文件也是1.8。
  • doContent()方法未在我的门户网站组件中实现,它存在于SAP的PageProcessorComponent超类中
  • 该错误仅在某些安装中发生,其他系统不受影响。 这似乎表明某些配置可能负责。

我不知道如何进一步分析-我的代码或其编译方式有问题吗? 还是NetWeaver中存在无法处理已编译代码的设置?

任何想法都将不胜感激。

最诚挚的问候,

魔鬼

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家您好,

我已经使用JSP DynPage概念(即门户组件扩展了PageProcessorComponent以及用于与JSP交换数据的Java bean)开发了iView。 多年来,它在NW 7.3和NW 7.4上均能完美运行。

在NW 7.5上,打开iview时遇到以下错误:

 500内部服务器错误
 信息:
 无法处理对[irj] Web应用程序中的servlet [prt]的HTTP请求。
 [例外]
 java.lang.VerifyError:需要一个堆栈映射框架
 异常详细信息:
   位置:
     PRT_jsp_WEB_2d_INF_pagelet_FsIntegrationAdmin_1498722360657._doContent(Lcom/sapportals/portal/prt/component/IPortalComponentRequest; Lcom/sapportals/portal/prt/component/IPortalComponentResponse;)V @ 31559:nop
   原因:
     在此位置的预期堆栈图框架。
 字节码:
     0x0000000:1307 15b8 0712 3aae 2b03 b900 0b02 0012
 .... 

此错误似乎表明字节码有问题。

到目前为止,这些是我的发现:

  • 该门户组件是使用源和目标1.8与Oracle JDK 1.8一起编译的
  • 门户网站在首次访问时编译的类文件也是1.8。
  • doContent()方法未在我的门户网站组件中实现,它存在于SAP的PageProcessorComponent超类中
  • 该错误仅在某些安装中发生,其他系统不受影响。 这似乎表明某些配置可能负责。

我不知道如何进一步分析-我的代码或其编译方式有问题吗? 还是NetWeaver中存在无法处理已编译代码的设置?

任何想法都将不胜感激。

最诚挚的问候,

魔鬼

付费偷看设置
发送
3条回答
jovirus
1楼 · 2020-09-02 16:10.采纳回答

仅注意到我从未在SAP支持的帮助下发布过那时找到的解决方案,所以我们去了:

此错误是由Wily的" Introscope JAVA代理(ISAgent)"的字节码检测引起的。 如果ISAgent已关闭,则iView可以成功打开。
要解决此问题,必须使用Config工具将以下属性添加到JVM初始化属性中:

 -Dcom.wily.introscope.probebuilder.widenJumpOffsetThreshold = 32767 
之后需要重新启动Netweaver服务器。

此致

Tanja

小灯塔
2楼-- · 2020-09-02 16:27

嗨Tanja,

我在您的问题中添加了一些辅助标签,以帮助实现一些相关的可见性。

我自己不是Java开发人员,所以没有这方面的专家,但是我很确定NetWeaver Java 7.5仅与SAPJVM(8.1)兼容(按照PAM),并且您提到已编译了 Oracle JDK 1.8编写代码。 您可以使用SAPJVM重新编译吗?

干杯,
马特

DafaDDDa
3楼-- · 2020-09-02 16:09

嗨,马特,

感谢您的输入。 您提到的兼容性与NetWeaver的运行时环境有关(即NW仅在SAP JVM上运行)。 就编译而言,使用Oracle还是SAP都无关紧要(这是理论:-))

确实,我们似乎已经确定了问题的起因:似乎应该归咎于Wily的Introscope JAVA Agent。 关闭电源后,即可打开iView。

现在,我们已经找到原因了,我们必须解决该问题。

此致

魔鬼

一周热门 更多>