Импорт библиотеки сценариев javascript на стороне сервера из внешнего nsf в XPage

Я пытаюсь найти способ ссылаться на файл jss на стороне сервера из внешнего приложения nsf (на том же или другом сервере домино).

Я перешел на страницу xpage, а затем в ее свойство ресурсов. Я выбрал импорт библиотеки сценариев, затем во всплывающем окне я выбрал «серверную сторону» в раскрывающемся списке и, наконец, попытался угадать URL-адрес, который мог бы работать.

Я знаю, что он не работает как javascript на стороне клиента, поскольку csjs - это просто текст, анализируемый браузером. Но я не понимаю, почему xpage не может получить jss из URL-адреса, а затем загрузить его и проанализировать, как если бы он был локальным...

Можно ли загрузить jss из другого nsf?


person mike_x_    schedule 03.02.2015    source источник
comment
Если код, на который вы хотите сослаться, того стоит, используйте Java и OSGi или JAR.   -  person Frantisek Kossuth    schedule 03.02.2015


Ответы (1)


Я не думаю, что это возможно в NSF. Я думаю, проблема в том, что вы сравниваете это с процессом библиотеки сценариев JavaScript на стороне клиента, а не с ресурсами на стороне сервера, и поэтому думаете, что это проще, чем технически должно быть. Вы не можете загрузить класс Java из другого NSF, и вы не можете (легко) загрузить XPage или пользовательский элемент управления. Каждый NSF работает на своей собственной JVM, поэтому может потребоваться запустить среду выполнения XPages внешней базы данных для загрузки библиотеки сценариев SSJS. Библиотека скриптов SSJS может ссылаться на другие библиотеки, классы Java, управляемые bean-компоненты, переменные и т. д., и получить их не удастся, поскольку библиотека скриптов SSJS будет извлечена из базы данных A в виде простого текста (помните, что это только код во время выполнения) и проанализирована в пределах контекст базы данных B. Я думаю, что существует достаточно уровней сложности, чтобы это было практически невозможно, особенно когда это можно сделать в плагине начиная с 8.5.2, который был бы более автономным.

Я пытался получить доступ к ресурсам через серверные HTTP-сессии, и вам все равно нужно пройти аутентификацию на сервере — он не передает автоматически учетные данные для входа или использует доступ к серверу. Так что, вероятно, это также барьер, который (каким-то образом) придется преодолеть.

Я считаю, что Джесси Галлахер сумел разработать способ загрузки XPage или пользовательского элемента управления из другой базы данных через OpenNTF Domino API, но я не думаю, что это рекомендуемый способ. Я сомневаюсь, что он использовал его, чтобы попытаться загрузить библиотеки SSJS. Вы также можете столкнуться с проблемами, потому что код находится в отдельных JVM.

По сути, для доступа к одному и тому же SSJS из нескольких NSF он должен находиться на уровне иерархии серверов выше NSF, то есть в плагине OSGi. Но если это код для собственного потребления, к тому времени вы, скорее всего, будете писать на Java, а не на SSJS.

На данный момент лучший вариант — скопировать и вставить или наследовать от шаблона.

person Paul Stephen Withers    schedule 03.02.2015