Существует ошибка, которая препятствует использованию сценария Scala в автономном режиме. См. https://issues.apache.org/jira/browse/SLING-1877 для получения более подробной информации и исправления.
Также обратите внимание, что при использовании исправления вам все равно необходимо установить путь к классу при использовании механизма сценариев. Это изменение от 2.7.7, где путь по умолчанию java-класса (т. Е. Java.class.path) использовался автоматически. В 2.8 вы должны установить это явно для аргумента '-usejavacp'.
Вот некоторые примеры кода демонстрирует автономное использование сценариев двигателя Scala:
def testScalaScriptEngine() {
val scriptEngineFactory = new ScalaScriptEngineFactory
val settings = new ScalaSettings()
settings.parse("-usejavacp")
scriptEngineFactory.getSettingsProvider.setScalaSettings(settings)
val scriptEngine = scriptEngineFactory.getScriptEngine
val script = """
package script {
class Demo(args: DemoArgs) {
println("Hello")
}
}
"""
scriptEngine.getContext.setAttribute("scala.script.class", "script.Demo", ScriptContext.ENGINE_SCOPE)
scriptEngine.eval(script)
}
Вы могли бы хотеть подать ошибку здесь: https://issues.apache.org/jira/browse/SLING – michid
Возможно, было бы интересно поместить ссылку на этот проект, чтобы люди, которые не слышали об этом, могли попробовать. –
Apache Sling: http://sling.apache.org/site/index.html Механизм сценариев Scala (который также может использоваться независимо от Sling) находится здесь: http://svn.apache.org/viewvc/ sling/trunk/contrib/scripting/scala/ – michid