Java Weblogic 10上的Hibernate验证程序

Java Weblogic 10上的Hibernate验证程序,java,hibernate,validation,jpa,weblogic,Java,Hibernate,Validation,Jpa,Weblogic,我在Weblogic 10服务器上使用Hibernate验证程序部署应用程序时遇到错误 当应用程序通过批注运行表单验证时,它会崩溃并出现错误: Error 500--Internal Server Error java.lang.NoSuchMethodError: javax.el.ExpressionFactory.newInstance()Ljavax/el/ExpressionFactory; at org.hibernate.validator.interna

我在Weblogic 10服务器上使用Hibernate验证程序部署应用程序时遇到错误

当应用程序通过批注运行表单验证时,它会崩溃并出现错误:

Error 500--Internal Server Error

java.lang.NoSuchMethodError: javax.el.ExpressionFactory.newInstance()Ljavax/el/ExpressionFactory;
            at org.hibernate.validator.internal.engine.messageinterpolation.InterpolationTerm.(InterpolationTerm.java:60)
            at org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator.interpolateExpression(ResourceBundleMessageInterpolator.java:227)
            at org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator.interpolateMessage(ResourceBundleMessageInterpolator.java:187)
            at org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator.interpolate(ResourceBundleMessageInterpolator.java:120)
当应用程序在Tomcat服务器上运行时,不会发生此错误

我们已将weblogic web应用程序文件设置为:

<container-descriptor>
    <prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
我们试图在weblogic.xml中设置首选包,从weblogic模块中删除了JPA lib,但都没有效果


加载验证消息的属性文件时似乎出现了一些问题,但原因是什么?

我意识到这篇文章有点过时,可能已经解决了。只是想在其他人遇到相同问题时进行更新

根本问题是多jar解决/冲突。Weblogic引用并从下面列出的系统提供的JAR加载EL类(位于模块目录中)

  • 玻璃鱼缸
  • javax.jsp_1*.jar
  • 在我的例子中,我需要指示weblogic服务器从位于应用程序中的jar(ear中的weblogic-application.xml)加载下面列出的包的类

    
    javax.el*
    com.sun.el*
    
    如果只是web应用程序,则可以在weblogic.xml中提供相同的配置


    是的,这就是问题所在。
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>5.0.1.Final</version>
        <scope>runtime</scope>
    </dependency>
    
    <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>1.1.0.Final</version>
        <scope>runtime</scope>
    </dependency>
    
     @NotEmpty(message = "{newQuote.source}")
    
      <prefer-application-packages>
        <package-name>javax.el.*</package-name>
        <package-name>com.sun.el.*</package-name>
      </prefer-application-packages>