Как я могу указать свой собственный контекст Rhino в Java?
Я пытаюсь убедиться, что мои скрипты Rhino (работающие под Java 6) строги, чтобы, если разработчик скриптов неправильно написал выражение, я хотел, чтобы было выдано исключение. В настоящее время, что происходит, это выражение просто оценивается как "неопределенное".
Теперь, согласно Mozilla org https://developer.mozilla.org/en/New_in_Rhino_1.6R6 есть функции, позволяющие осуществлять строгую проверку в контексте. Я не могу найти работающий пример этого.
До сих пор я написал класс для расширения ContextFactory, а затем переопределил метод hasFeature.
public class ScriptContextFactory extends ContextFactory {
protected boolean hasFeature(Context context, int featureIndex) {
switch (featureIndex) {
case Context.FEATURE_STRICT_EVAL:
return true;
case Context.FEATURE_STRICT_VARS:
return true;
}
return super.hasFeature(context, featureIndex);
}
}
Затем в главном я установил мой по умолчанию.
ContextFactory.initGlobal(new ScriptContextFactory());
и я получаю незаконное государственное исключение.:(
Любые идеи или образцы о том, как это работает?
ТИА
1 ответ
Если вы делаете Context.enter()
перед звонком initGlobal()
попробуйте поменять порядок.