当前位置: 首页 > 知识库问答 >
问题:

Exception:java.lang.VerifyError:JVMVRFY012堆栈形状不一致;

岳朝
2023-03-14

我们刚刚从IBM WebSphere7(Java 1.6)迁移到WebSphere9(Java 1.8)。我正面临长强制转换的问题,加载jsp时出现代码中断,下面的代码片段(这段代码是用jsp编写的):

        long caseNum = 0L, empid = 0L;
        Long employeeId;


            employeeId = ((Long) request.getAttribute("EMPID") == null) ? 0L
                    : (Long) request.getAttribute("EMPID");
            empid = employeeId.longValue();

下面是堆栈串,

Exception:java.lang.VerifyError:JVMVRFY012堆栈形状不一致;class=com/ibm/_jsp/_tmtsstasksummary,method=_jspservice(ljavax/_jsp/_tmtsstasksummary._jspservice(ljavax/servlet/http/httpservletrequest;ljavax/servlet/http/httpservletrequest;ljavax/servlet/httpservletresponse;)V@13805:JBifnull原因:Type top(当前帧,locals[120])不能分配给“java/lang/long”(堆栈映射,locals[120])当前帧:bci:@13805ava/util/map“,integer,”java/lang/string“,integer,”java/lang/string“,”java/lang/string“,”java/lang/string“,”java/lang/string“,”java/lang/string“,”java/lang/object“,”java/lang/object“,”java/lang/string“,”java/lang/string“,”java/lang/string“,”java/lang/string“,”java/lang/string“,”java/lang/string“,”java/lang/string“

有没有人能提出任何解决办法。我读过关于使用splitverify的文章,但它与AspectJ一起工作。还有其他的解决办法吗?

共有1个答案

鄂曦之
2023-03-14

在我看来

>

  • 您正在尝试类型化一个null对象,该对象将引发错误或

    long caseNum = 0L, empid = 0L;
    Long employeeId;
    
    
        employeeId = (request.getAttribute("EMPID") == null) ? 0L
                : (Long) request.getAttribute("EMPID");
        empid = employeeId.longValue();
    

    您正在尝试将字符串或任何其他对象转换为long。如果是字符串,则使用long.parselong()

        employeeId = (request.getAttribute("EMPID") == null) ? 0L
                : Long.parseLong(request.getAttribute("EMPID"));
        empid = employeeId.longValue();
    

  •  类似资料:
    • 我正在websphere portal 8.5版上部署maven war文件。在离开时,我遇到以下错误---- 谁能告诉我问题是什么以及如何解决它?

    • 我正在进行升级项目,将java web应用程序从websphere application server 8.5中的java 6移动到java 8。 我们正在使用许多SOAP web服务调用与其他内部系统和供应商系统进行交互。所以现在,每当系统尝试创建SOAP请求时,我们都会收到下面的错误消息。 签名com/sun/xml/messaging/saaj/soap/SOAPDocumentFragm

    • 因此,我试图在Jasmin中创建一个简单的for循环,每次hello world通过该循环时,它都会打印出来。问题是,每当我试图通过添加一个来增加它时,我会得到这样的错误:“错误:无法初始化主类测试由:java.lang.verifyerror:(class:test,method:main signature:([ljava/lang/string;)V)不一致的堆栈高度1!=2”当我不试图添加

    • 输入=堆栈数 但是你只能弹出输入,你不能推到它。输出也是另一个堆栈,你可以返回并推到它,但不能弹出 所以如果 由于您无法在中返回到

    • 主要内容:Stack 类中的属性,Stack 类中的方法在 C# 中,堆栈(Stack)类表示一个后进先出的对象集合,当您需要对项目进行后进先出的访问时,则可以使用堆栈。向堆栈中添加元素称为推入元素,从堆栈中移除元素称为弹出元素。 Stack 类中的属性 下表列出了 Stack 类中一些常用的属性: 属性 描述 Count 获取堆栈中包含的元素个数 IsSynchronized 判断是否同步对堆栈的访问(线程安全) SyncRoot 获取可用于同步对堆

    • 6.5.2 堆栈 堆栈(stack)也是一种数据集合体,其中的数据构成一种具有“后进先出(LIFO)”性 质的数据结构,即最后加入堆栈的数据总是首先取出。现实中堆栈的例子俯拾皆是,例如碗橱里的一摞碗、纸箱里的一摞书、弹夹中的子弹等等(图 6.10),他们共同的特点是先放进 去的东西垫底,最后放进去的东西在顶上,而取东西的顺序正好相反。 [图片丢失] 图 6.10 现实中的堆栈例子 如果忽略各种具体