Импортируйте пользовательские классы Java в JavaScript на стороне сервера в Xpages (Lotus Domino 8.5+)
-
10-07-2019 - |
Вопрос
В Lotus Domino 8.5.1 можно использовать «стандартные» классы Java в Javascript на стороне сервера (встроенном в Xpage) или классы Java, доступные в папке WEB-INF/lib.Например :
var driverClass:java.lang.Class;
var driver:java.sql.Driver;
var connection:java.sql.Connection;
var statement:java.sql.Statement;
driverClass = java.lang.Thread.currentThread().getContextClassLoader().loadClass("org.gjt.mm.mysql.Driver");
driver = driverClass.newInstance();
(образец найден здесь здесь)
Однако как можно использовать наши собственные классы, определенные в библиотеках сценариев Java?В Xpage можно импортировать только библиотеки javascript на стороне сервера (не Java или LS).
Спасибо за вашу помощь
Ваше здоровье
Решение
Ответ найден на вики:
http://www-10.lotus.com/ldd/ddwiki.nsf/dx/reuse_java_xpage.htm
Из XPage легко вызвать JavaScript на стороне службы для бизнес-логики.В JavaScript имеются встроенные функции, которые позволяют ему вызывать Java.К сожалению, серверный JavaScript, используемый XPages, в настоящее время не может вызывать подпрограммы Java, созданные в библиотеке Java.Однако он может вызывать библиотеку Java, экспортированную в виде файла JAR.Оказывается, вы также можете создать библиотеку Java, которая также вызывает файл JAR Java.
Другие советы
Мы реализовали почти всю логику, используя стандартную Java, используя Eclipse и Maven для разработки Java и упаковав их в файлы JAR.Мы даже настроили Maven для копирования файлов JAR в соответствующий каталог на сервере domino (стандартно /xsp/shared/lib или используем /jvm/lib/ext, чтобы сделать классы доступными повсюду в domino, напримердля автоматической реализации собственных надстроек Java Server).Я рекомендую этот подход.
На самом деле мы использовали Domino «просто» в качестве сервера приложений и хранили данные в СУБД.