简体   繁体   中英

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

Beside many components I use my app:

  • Spring Framework (version 4.3.20.RELEASE)
  • Hibernate (version 4.3.11.Final)

I decide to upgrade hibernate-validator component from version 5.4.3.Final to 6.1.5.Final. When I deployed and run my app on WAS I got error: Caused by: java.lang.ClassNotFoundException: javax.el.ELManager . On Tomcat 9 everything works fine.

I found some ideas what to do with that. First one comes from https://hibernate.org/validator/documentation/getting-started/ . It says:

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 comes from link , and says almost the same:

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

I implemented both solutions but I get new error when I try to reach login page:

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:?]

Do you have any idaes what can cause that? I also found some solution for WAS Libery , but it doesn't apply to me because I use regular WAS.

What about this link:

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

Use the featureManager command, for example:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM