Разрешение модулей с использованием require.js и Java / Rhino
Я пытаюсь получить require.js для загрузки модулей на стороне сервера с Java 6 и Rhino.
Я в состоянии загрузить require.js сам по себе. Носорог может увидетьrequire()
функция. Я могу сказать, потому что Rhino жалуется, что не может найти функцию, когда я меняюrequire()
к чему-то другому, какrequireffdkj()
.
Но когда я пытаюсь потребовать даже простой JS, какhello.js
var hello = 'hello';
используя одно из следующего:
require('hello');
require('./hello');
это не работает. я получил
Caused by: javax.script.ScriptException: sun.org.mozilla.javascript.internal.JavaScriptException: [object Error] (<Unknown source>#31) in <Unknown source> at line number 31
at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:153)
at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:167)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:247)
У меня есть мойhello.js
в верхней части пути к классам Java. Вот где яrequire.js
также. Я пытался переехатьhello.js
я мог бы подумать, что это возможно, включая корень моего жесткого диска, корень моего пользовательского каталога, каталог, из которого я запускаю свое Java-приложение, и т. д. Ничего не работает.
Я посмотрел на спецификацию CommonJS (http://wiki.commonjs.org/wiki/Modules/1.0) и он говорит, что идентификаторы верхнего уровня (например,hello
) определяются из «корня концептуального пространства имен модуля», тогда как относительные идентификаторы (например,./hello
) разрешены против вызывающего модуля. Я не уверен, где находится какой-либо из этих базовых показателей, и я подозреваю, что это проблема.
Какие-либо предложения? Могу ли я даже использовать require.js от Rhino?
EDIT: Думая, что мне нужно настроить среду в соответствии с предложением Pointy в комментарии ниже, я попытался оценитьr.js
также. (Я пытался оценить после оценкиrequire.js
а потом еще разrequire.js
.) В любом случае я получаю ошибку:
Caused by: javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "arguments" is not defined. (<Unknown source>#19) in <Unknown source> at line number 19
at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:153)
at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:167)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:247)
& Quot; аргументы & Quot; представляется переменной вr.js
, Я думаю, что это для аргументов командной строки, поэтому я не думаю,r.js
правильный путь для того, что я пытаюсь сделать. Не уверен, хотя.