2009-10-29 16 views
2

Avec Lotus Domino 8.5.1, vous pouvez utiliser des classes Java "standard" dans le Javascript côté serveur (incorporé dans une Xpage), ou des classes Java disponibles dans le dossier WEB-INF/lib. Par exemple:Importer des classes Java personnalisées dans le javascript côté serveur dans Xpages (Lotus Domino 8.5+)

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(); 

(échantillon trouvé ici here)

Cependant, comment pourrait-on utiliser nos propres classes personnalisées définies dans les bibliothèques de script Java? Dans une Xpage, on ne peut importer que des bibliothèques javascript côté serveur (pas Java ni LS).

Merci pour votre aide

Vive

Répondre

3

Réponse trouvée sur le wiki:

http://www-10.lotus.com/ldd/ddwiki.nsf/dx/reuse_java_xpage.htm

D'un XPage il est facile d'appeler le service Side JavaScript pour la logique métier. Le JavaScript a intégré des fonctionnalités qui lui permettent d'appeler Java. Malheureusement, JavaScript côté serveur, tel qu'utilisé par XPages, ne peut pas actuellement appeler les routines Java créées dans une bibliothèque Java. Cependant, il peut appeler une bibliothèque Java exportée en tant que fichier JAR. Comme il s'avère, vous pouvez également créer une bibliothèque Java qui appelle également dans un fichier Java JAR.

1

Nous avons implémenté presque toute la logique en utilisant Java standard en utilisant Eclipse et Maven pour développer Java et les conditionner en JAR. Nous avons même configuré Maven pour copier les fichiers JAR dans le répertoire approprié sur le serveur domino (/ xsp/shared/lib est standard, ou utilisez/jvm/lib/ext pour rendre les classes disponibles partout dans domino, par exemple pour implémenter Java Addins) automatiquement. Je recommande cette approche.

En fait, nous avons utilisé domino "juste" comme serveur d'applications et stocké les données dans un SGBDR.