최근 자바 1.7에서 자바 1.8으로 업그레이드했습니다. 업그레이드 후에이 오류가 발생합니다.나 쏜용 개찰 설정
에 의해 발생 : ECMAScript 예외 : 유형 오류 : ScriptObject 및 내 인터페이스에 대한 공통 클래스 로더를 찾을 수 없습니다.
Java 1.8 및 nashorn 스크립트 엔진을 지원하는 어떤 버전의 wicket을 사용해야합니까? 또한 wicket 용 스크립트 엔진과 관련된 사항을 설정해야합니다.
제가
이 종속성<dependency>
<groupId>org.wicketstuff</groupId>
<artifactId>wicketstuff-nashorn</artifactId>
<version>7.4.0</version>
</dependency>
및 ScriptEngineManager는 SEM = 새로운 ScriptEngineManager는()를 추가하는 시도; engine = sem.getEngineByName ("nashorn");
하지만 여전히 동일한 문제가 발생합니다.
이 문제를 해결할 수 있도록 도와주세요.
다음은 내 방법 Nashorn이 필요하지 않습니다
private final ScriptEngine engine;
ScriptEngineManager sem = new ScriptEngineManager();
engine = sem.getEngineByName("nashorn");
public <K> K getNewInterface(MyScript myScript){
ScriptContext ctx = new SimpleScriptContext();
String script = myScript.getScript();
if(Strings.isEmpty(script)) {markInvalid(myScript, "Script is empty", null); return null;}
script += " (function(){return this;})();";
Object thiz;
try{
thiz = engine.eval(script, ctx);
} catch (ScriptException e){
markInvalid(myScript, "Can't execute script", e);
return null;
}
if(thiz==null) {markInvalid(myScript, "Script executed, but context is null", null); return null;}
K ret = (K) ((Invocable)engine).getInterface(thiz, myScript.getScriptInterfaceClass());
if(ret==null) {
markInvalid(myScript, "Script executed, but it's incompatible with required interface", null);
return null;
}else{
myScript.setValid(true);
return ret;
}
}
답장을 보내 주셔서 감사합니다. – Bhagat
오류가 발생하는 문장은 다음과 같습니다. - K ret = (K) ((호출 가능) 엔진) .getInterface (thiz, myScript.getScriptInterfaceClass()); – Bhagat
에 의해 발생 : ECMAScript 예외 : TypeError : ScriptObject 및 My Interface에 대한 공통 클래스 로더를 찾을 수 없습니다. jdk.nashorn.internal.runtime.ECMAErrors.error에서 \t (ECMAErrors.java:57) jdk.nashorn.internal.runtime.ECMAErrors.typeError에서 \t (ECMAErrors.java:213) jdk.nashorn.internal에서 \t .runtime.ECMAErrors.typeError (ECMAErrors.java:185) \t at jdk.nashorn.internal.runtime.ECMAErrors.typeError (ECMAErrors.java:172) – Bhagat