Я пытаюсь запустить код Python на сервере Coldfusion с использованием Java. Я знаком с CFML, но абсолютным новичком с Java.Java и JSR-223 для запуска кода Python (или Ruby) на сервере Coldfusion
Я могу создать объекты и перечислить их методы в порядке, однако я застрял в разных типах объектов.
Пример, который я пытаюсь получить работу в Coldfusion является
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class JSR223 {
public static void main(String[] args) throws ScriptException {
ScriptEngine engine = new ScriptEngineManager().getEngineByName("python");
engine.eval("import sys");
engine.eval("print sys");
engine.put("a", 42);
engine.eval("print a");
engine.eval("x = 2 + 2");
Object x = engine.get("x");
System.out.println("x: " + x);
}
}
То, что я до сих пор в CFML
ScriptEngine = CreateObject("java", "javax.script.ScriptEngine");
ScriptEngineManager = CreateObject("java", "javax.script.ScriptEngineManager");
ScriptException = CreateObject("java", "javax.script.ScriptException");
Часть я застрял на
ScriptEngine engine = new ScriptEngineManager().getEngineByName("python");
Как я могу создать это в CFML?
Edit:
engine = ScriptEngineManager.getEngineByName("python");
writeDump(engine);
дает мне ошибку: переменная [ENGINE] не существует
Как другой класс, ScriptEngine вписывается в это?
Update
я могу загрузить другие классы Python, так что я думаю, что баночка правильно установлен. т.е. со следующим кодом я могу сбросить объект interp.
Однако даже тогда вызов метода дает мне эту ошибку
java.lang.NullPointerException
* запустить код Python на сервере Coldfusion * Из любопытства, это что-то, что может/должно быть сделано в чистом cfml? – Leigh
Это больше упражнение, чем что-либо другое. Я хотел бы иметь возможность доступа к библиотекам python, которых нет в CFML. – username