在我正在进行的项目中,我有一个依赖项,要求hibernate-validator也包含在项目的pom.xml中。
我在pom.xml中有以下内容:
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>javax.el</artifactId>
<version>2.2.6</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.3.4.Final</version>
</dependency>
但是,尽管将上述所有内容都包含在依赖项中,但在尝试使用mule启动项目时,我收到以下错误:
Caused by: java.lang.NoSuchMethodError: javax.el.ExpressionFactory.newInstance()Ljavax/el/ExpressionFactory;
at org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator.buildExpressionFactory(ResourceBundleMessageInterpolator.java:98) ~[?:?]
at org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator.<init>(ResourceBundleMessageInterpolator.java:45) ~[?:?]
at org.hibernate.validator.internal.engine.ConfigurationImpl.getDefaultMessageInterpolator(ConfigurationImpl.java:423) ~[?:?]
在SO和其他网站上做进一步的研究,我尝试使用几种方法解决这个问题,包括投入java.el-api
(实际上不需要IIRC)以及添加到loader.override
属性(在mule-deploy.properties中)javax.el.ExpressionFactory
和org.mule.devkit.model.code.ExpressionFactory
。将这些类添加到loader.override
只会导致&#34;无法覆盖系统包&#34; mule.log
中的错误。
我可能缺少什么想法?谢谢!