2017-08-04 20 views
0

IBM Websphere 7(Java 1.6)からWebsphere 9(Java 1.8)に移行しました。 JSPのロード中に、私は(このコードは、JSPで書かれている)、以下のコードをロングキャストの問題、コードブレークに直面してい :java.lang.Exception:java.lang.VerifyError:JVMVRFY012スタックの形状が矛盾しています。

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


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

は、スタックstraceの、

java.langです。例外:java.lang.VerifyError:JVMVRFY012のスタック形状が矛盾しています。クラス= COM/IBM/_jsp/_TMTSSTaskSummary、方法= _jspService(Ljavax /サーブレット/ HTTP/HttpServletRequestを、Ljavax /サーブレット/ HTTP/HttpServletResponseの;)V、PC = 13805の 例外の詳細: 場所: COM/IBM/_jsp/@ TMTSSTaskSummary._jspService(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V @ 13805:JBifnull 理由: タイプトップ(現在のフレーム、地方[120])は 'java/lang'に割り当てられません現在のフレーム: bci:@ 13805 flags:{} locals:{'com/ibm/_jsp/_TMTSSTaskSummary'、 'javax/servlet/http/HttpServletRequest'、/ long '(スタックマップ、ローカル[120] javax/servlet/http/HttpServletResponse、javax/servlet/jsp/PageContext、javax/servlet/http/HttpSession、javax/servlet/Serv JspWriter '、' javax/servlet/jsp/JspWriter '、' java/lang/Object '、' javax/servlet/jsp/JspWriter '、' com/presentation/view/pageelements/SecurityAttr ' 「java/lang/String」、「java/lang/String」、「java/lang/String」、「javax/servlet/http/HttpSession」、「java/lang/String」、「java/lang/String」、 'java/lang/String'、 'java/lang/String'、整数、整数、整数、整数、 'java/lang/String' 「java/lang/Object」、「java/lang/Object」、「java/lang/Object」、「java/lang/String」、「java/lang/String」、「java/lang/「Java/lang/String」、「java/lang/Object」、「java/lang/String」、「java/lang/Object」、「java/lang/String」、「java/lang/String」、「2017-08- '0'、 'A'、 '不明なエラー'、 '859469'、 '518722'、 'null'、 'null')

誰でも任意の解決策を提案できますこのため。 splitverifyの使い方については読んでいますが、AspectJで動作します。他の解決策はありますか?

+0

これを解決しましたか? – rainman

答えて

2

  1. はあなたが文字列またはに他のオブジェクトをキャストしようとしているエラーを上げたり

    long caseNum = 0L, empid = 0L; 
    Long employeeId; 
    
    
        employeeId = (request.getAttribute("EMPID") == null) ? 0L 
          : (Long) request.getAttribute("EMPID"); 
        empid = employeeId.longValue(); 
    
  2. れるnullオブジェクトを型キャストしようとしているように私には思えます長いです。場合は、文字列、Long.parseLong()も

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

、あなたは本当にauto-unboxingがそれを処理する必要がありますように長いに変換するには長い社員を使用する必要はありません一般的なアドバイスを使用しています。

+0

私は三項演算子を使用しているので、ヌルオブジェクトの問題を型キャストすることはありません。 –

1

Java 7の互換性の問題です。 Jdk 7では、-XX:-UseSplitVerifierを使用できます。 JDK 8 -XXを使用している場合:-UseSplitVerifierは廃止され、-noverifyに置き換えられました。 私はjvm引数に-nanifyを追加して、問題を解決しました。

関連する問題