在我的App Engine应用程序运行时,我收到以下异常:
java.lang.ExceptionInInitializerError
at
org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator.interpolateExpression(ResourceBundleMessageInterpolator.java:227)
... (removed for brevity)
Caused by: java.lang.ClassNotFoundException: de.odysseus.el.ExpressionFactoryImpl我在我的开发服务器上看到了这个错误,并通过在我的pom.xml中包含juel-impl来修复它
当我使用appcfg.sh从服务器拉出我的应用程序时,我看到它在WEB-INF/lib文件中包含了juel-impl-2.2.7-20130801.163115-1.jar
我真的不确定这是怎么回事。
发布于 2013-11-06 22:06:59
更新:根据GAE issue tracker的说法,这个问题已经在1.9.7版本中得到了修复。有关早期版本,请参阅下面的内容。
Hibernate Validator5.x使用了Unified Expression Language。特别是,它使用了一个静态API方法来查找ExpressionFactory的实现。然而,App Engine 1.9.4及更早版本中的bug似乎阻止了在仅用于生产的中使用任何表达式工厂实现。
在此问题得到解决之前,有两种解决方法:
Apache validator 4.3.1最终的
BVal的存储库快照一起工作。我还没有测试过这个。
更新注意:按照我之前的响应(Glassfish EL或JUEL)中的说明指定表达式语言实现在开发和某些生产用例中工作得很好,但对于某些验证仍然会失败。
发布于 2013-12-17 19:00:06
我也有同样的问题。它有助于使用hibernate-validator 4.3.1 instead而不是5.0.1 instead。参考:stackoverflow (avidD-s答案)
https://stackoverflow.com/questions/19216495
复制相似问题