Java 8 使用HibernateValidator';Java8上的ScriptAssert
我们正处于从Java7切换到Java8的过程中(我想大概是时候了:-),我们在使用HibernateValidator的ScriptAssert时遇到了一些问题。看起来Nashorn Javascript引擎未正确初始化 ScriptAssert的使用方法如下Java 8 使用HibernateValidator';Java8上的ScriptAssert,java-8,hibernate-validator,nashorn,Java 8,Hibernate Validator,Nashorn,我们正处于从Java7切换到Java8的过程中(我想大概是时候了:-),我们在使用HibernateValidator的ScriptAssert时遇到了一些问题。看起来Nashorn Javascript引擎未正确初始化 ScriptAssert的使用方法如下 @ScriptAssert( lang = "javascript", script = "_this.owner != null && _this.owner.id != null" +
@ScriptAssert(
lang = "javascript",
script = "_this.owner != null && _this.owner.id != null"
+ " && _this.owner.id.matches('^[0-9A-F]{8}-[0-9A-F]{4}-[1-5][0-9A-
F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$')"
)
我们得到的是一个如下所示的异常,这种情况发生在Linux上的JDK1.8.0131上
任何帮助都将不胜感激。下面是堆栈跟踪
java.lang.NoSuchMethodError:
invokeExact(Ljava/lang/Object;Ljava/lang/Object;)V
位于jdk.nashorn.internal.runtime.AccessorProperty.invokeSetter(AccessorProperty.java:462)
~[nashorn.jar:?]
位于jdk.nashorn.internal.runtime.AccessorProperty.setValue(AccessorProperty.java:485)
~[nashorn.jar:?]
位于jdk.nashorn.internal.runtime.ScriptObject.橡皮擦属性值(ScriptObject.java:916)
~[nashorn.jar:?]
位于jdk.nashorn.internal.runtime.ScriptObject.deleteOwnProperty(ScriptObject.java:928)
~[nashorn.jar:?]
位于jdk.nashorn.internal.runtime.ScriptFunction.createBuiltin(ScriptFunction.java:324)
~[nashorn.jar:?]
位于jdk.nashorn.internal.runtime.ScriptFunction.createBuiltin(ScriptFunction.java:339)
~[nashorn.jar:?]
位于jdk.nashorn.internal.runtime.ScriptFunction.createBuiltin(ScriptFunction.java:350)
~[nashorn.jar:?]
位于jdk.nashorn.internal.objects.NativeFunction$Prototype。(未知)
来源)~[nashorn.jar:?]
位于jdk.nashorn.internal.objects.NativeFunction$Constructor。(未知)
来源)~[nashorn.jar:?]
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
~[?:1.8.0_131]
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
~[?:1.8.0_131]
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
~[?:1.8.0_131]
位于java.lang.reflect.Constructor.newInstance(Constructor.java:423)
~[?:1.8.0_131]
在java.lang.Class.newInstance(Class.java:442)~[?:1.8.0131]
位于jdk.nashorn.internal.objects.Global.initConstructor(Global.java:2549)
~[nashorn.jar:?]
位于jdk.nashorn.internal.objects.Global.initFunctionAndObject(Global.java:2618)
~[nashorn.jar:?]
在jdk.nashorn.internal.objects.Global.init(Global.java:2257)~[nashorn.jar:?]
位于jdk.nashorn.internal.objects.Global.initBuiltinObjects(Global.java:1094)
~[nashorn.jar:?]
位于jdk.nashorn.internal.runtime.Context.initGlobal(Context.java:1150)
~[nashorn.jar:?]
位于jdk.nashorn.api.scripting.NashornScriptEngine.createNashornGlobal(NashornScriptEngine.java:360)
~[nashorn.jar:?]
位于jdk.nashorn.api.scripting.NashornScriptEngine。(NashornScriptEngine.java:143)
~[nashorn.jar:?]
位于jdk.nashorn.api.scripting.NashornScriptEngineFactory.getScriptEngine(NashornScriptEngineFactory.java:148)
~[nashorn.jar:?]
位于javax.script.ScriptEngineManager.getEngineByName(ScriptEngineManager.java:238)
~[?:1.8.0_131]
位于org.hibernate.validator.internal.util.scriptengine.ScriptEvaluatorFactory.createNewScriptEvaluator(ScriptEvaluatorFactory.java:87)
~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final]
位于org.hibernate.validator.internal.util.scriptengine.ScriptEvaluatorFactory.getScriptEvaluatorByLanguageName(ScriptEvaluatorFactory.java:70)
~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final]
位于org.hibernate.validator.internal.constraintvalidators.hv.ScriptAssertContext.getScriptEvaluator(ScriptAssertContext.java:60)
~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final]
位于org.hibernate.validator.internal.constraintvalidators.hv.ScriptAssertContext.(ScriptAssertContext.java:34)
~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final]
位于org.hibernate.validator.internal.constraintvalidators.hv.ScriptAssertValidator.initialize(ScriptAssertValidator.java:43)
~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final]
位于org.hibernate.validator.internal.constraintvalidators.hv.ScriptAssertValidator.initialize(ScriptAssertValidator.java:28)
~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final]
位于org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorManager.initializeValidator(ConstraintValidatorManager.java:225)
~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final]
位于org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorManager.CreateanInitializeValidator(ConstraintValidatorManager.java:151)
~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final]
位于org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorManager.getInitializedValidator(ConstraintValidatorManager.java:109)
~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final]
位于org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getConstraintValidatorNoUnwrapping(ConstraintTree.java:301)
~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final]
位于org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getConstraintValidatorInstanceForAutomaticUnwrapping(ConstraintTree.java:242)
~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final]
位于org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getInitializedConstraintValidator(ConstraintTree.java:163)
~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final]
位于org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:116)
~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final]
位于org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:87)
~[hibernate-validator-5.4.1.Final.jar:5.4.1.Final]
位于org.hibernate.validator.internal.metadata.core.MetaCo