簡體   English   中英

我將 hibernate-validator 升級到版本 6.1.5,應用程序在 WAS 8.5.5.17 上不起作用

[英]I upgraded hibernate-validator to version 6.1.5 and application doesn't work on WAS 8.5.5.17

除了許多組件之外,我還使用我的應用程序:

  • Spring 框架(版本 4.3.20.RELEASE)
  • Hibernate(版本 4.3.11.Final)

我決定將 hibernate-validator 組件從版本 5.4.3.Final 升級到 6.1.5.Final。 當我在 WAS 上部署並運行我的應用程序時,出現錯誤: Caused by: java.lang.ClassNotFoundException: javax.el.ELManager 在 Tomcat 9 上一切正常。

我發現了一些想法。 第一個來自https://hibernate.org/validator/documentation/getting-started/ 它說:

Hibernate Validator also requires an implementation of the Unified Expression
Language (JSR 341) for evaluating dynamic expressions in constraint violation messages.
For instance, you can add the following dependency to use the JSR 341 reference
implementation:
<dependency>
   <groupId>org.glassfish</groupId>
   <artifactId>javax.el</artifactId>
   <version></version>
</dependency>

Seconde 來自link ,並且說的幾乎相同:

Add:
<dependency>
    <groupId>javax.el</groupId>
    <artifactId>javax.el-api</artifactId>
    <version>3.0.0</version>
</dependency>

我實現了這兩種解決方案,但是當我嘗試訪問登錄頁面時出現新錯誤:

2020-07-13T11:54:59,068 ERROR DbLogEntryDao                  - sun.reflect.NativeMethodAccessorImpl.invoke0 (location: NativeMethodAccessorImpl.java:-2) Unexpected error at server dockerhost: [java.lang.Exception [1594641299057] : status code 500 :java.lang.VerifyError: JVMVRFY012 stack shape inconsistent; class=com/ibm/_jsp/_unk_5F_menu, method=_jspx_meth_c_forEach_0(Ljavax/servlet/jsp/tagext/JspTag;Ljavax/servlet/jsp/PageContext;)Z, pc=75; Type Mismatch, argument 1 in signature org/apache/jasper/el/ELContextWrapper.<init>:(Ljavax/el/ELContext;Ljavax/el/FunctionMapper;)V does not match
Exception Details:
  Location:
    com/ibm/_jsp/_unk_5F_menu._jspx_meth_c_forEach_0(Ljavax/servlet/jsp/tagext/JspTag;Ljavax/servlet/jsp/PageContext;)Z @75: JBinvokespecial
  Reason:
    Type 'org/apache/jasper/runtime/ProtectedFunctionMapper' (current frame, stack[8]) is not assignable to 'javax/el/FunctionMapper'
  Current Frame:
    bci: @75
    flags: { }
    locals: { 'com/ibm/_jsp/_unk_5F_menu', 'javax/servlet/jsp/tagext/JspTag', 'javax/servlet/jsp/PageContext', 'javax/servlet/jsp/JspWriter', 'org/apache/taglibs/standard/tag/rt/core/ForEachTag' }
    stack: { 'org/apache/taglibs/standard/tag/rt/core/ForEachTag']
2020-07-13T11:54:59,087 ERROR ErrorPageControllerMIGRATION   - Unexpected error
java.lang.Exception: java.lang.VerifyError: JVMVRFY012 stack shape inconsistent; class=com/ibm/_jsp/_unk_5F_menu, method=_jspx_meth_c_forEach_0(Ljavax/servlet/jsp/tagext/JspTag;Ljavax/servlet/jsp/PageContext;)Z, pc=75; Type Mismatch, argument 1 in signature org/apache/jasper/el/ELContextWrapper.<init>:(Ljavax/el/ELContext;Ljavax/el/FunctionMapper;)V does not match
Exception Details:
  Location:
    com/ibm/_jsp/_unk_5F_menu._jspx_meth_c_forEach_0(Ljavax/servlet/jsp/tagext/JspTag;Ljavax/servlet/jsp/PageContext;)Z @75: JBinvokespecial
  Reason:
    Type 'org/apache/jasper/runtime/ProtectedFunctionMapper' (current frame, stack[8]) is not assignable to 'javax/el/FunctionMapper'
  Current Frame:
    bci: @75
    flags: { }
    locals: { 'com/ibm/_jsp/_unk_5F_menu', 'javax/servlet/jsp/tagext/JspTag', 'javax/servlet/jsp/PageContext', 'javax/servlet/jsp/JspWriter', 'org/apache/taglibs/standard/tag/rt/core/ForEachTag' }
    stack: { 'org/apache/taglibs/standard/tag/rt/core/ForEachTag', 'uninitialized', 'uninitialized', 'java/lang/String', 'javax/el/ExpressionFactory', 'uninitialized', 'uninitialized', 'javax/el/ELContext', 'org/apache/jasper/runtime/ProtectedFunctionMapper' }
  Exception Handler Table:
    bci [113, 149] => handler: 260
    bci [156, 175] => handler: 260
    bci [182, 201] => handler: 260
    bci [208, 253] => handler: 260
    bci [113, 149] => handler: 297
    bci [156, 175] => handler: 297
    bci [182, 201] => handler: 297
    bci [208, 253] => handler: 297
    bci [260, 289] => handler: 297
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.loadServlet(ServletWrapper.java:1581) ~[com.ibm.ws.webcontainer.jar:?]

你有什么科動物會導致這種情況嗎? 我還為WAS Libery找到了一些解決方案,但它不適用於我,因為我使用常規 WAS。

這個鏈接怎么樣:

https://developer.ibm.com/wasdev/downloads/#asset/features-com.ibm.websphere.appserver.el-3.0

使用 featureManager 命令,例如:

bin/featureManager install el-3.0 --when-file-exists=ignore

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM