Des applications qui utilisent MongoDB peuvent s'exécuter sous Liberty.
Pour accéder à une instance MongoDB, les applications utilisent le pilote Java™ MongoDB et des sources de données que vous configurez pour le serveur.
Avant de commencer
Remarque : Liberty prend en charge la configuration pour MongoDB. MongoDB (de "humongous" en anglais, qui signifie énorme) est une base de données NoSQL de code source ouvert, très performante et évolutive.
Seuls
les pilotes Java MongoDB versions 2.10.0 à 2.12.5 sont pris en charge.
Pourquoi et quand exécuter cette tâche
Pour activer une application en vue de l'utilisation de MongoDB, configurez une bibliothèque partagée
pour le pilote Java MongoDB et une référence de bibliothèque à la bibliothèque partagée
dans le fichier server.xml de Liberty. Une application peut accéder à MongoDB directement ou via des
configurations de la fonction mongodb-2.0 et de
l'instance mongoDB dans le fichier
server.xml.
Procédure
- Installez le pilote Java MongoDB dans un emplacement auquel votre application et votre environnement d'exécution Liberty ont accès.
Par exemple, placez le fichier .jar du pilote MongoDB dans le répertoire racine_profil_Liberty/usr/servers/nom_serveur/lib.
- Configurez une bibliothèque partagée pour le fichier .jar du pilote MongoDB dans le fichier
server.xml du serveur Liberty.
<library id="MongoLib">
<file name="${server.config.dir}/lib/mongo.jar" />
</library>
- Autorisez votre application à accéder à MongoDB directement ou
via la fonction mongodb-2.0.
- Activez l'accès direct à MongoDB depuis l'application.
- Configurez une référence de bibliothèque pour la bibliothèque partagée dans un élément d'application du fichier server.xml.
<application ...>
<classloader commonLibraryRef="MongoLib"/>
</application>
Désormais, l'application peut accéder aux API MongoDB directement. Si vous voulez que l'application utilise le moteur d'injection de
l'environnement d'exécution, effectuez les étapes ci-après.
- Configurez la fonction mongodb-2.0
ainsi que les éléments mongo et mongoDB dans le fichier server.xml.
- Ajoutez la fonction mongodb-2.0 au fichier server.xml.
<featureManager>
<feature>mongodb-2.0</feature>
<feature>jndi-1.0</feature>
</featureManager>
La fonction JNDI n'est requise que si vous utilisez jndi afin de consulter des ressources. Il n'est pas nécessaire d'utiliser l'injection de ressource.
- Configurez un élément mongo qui référence la bibliothèque partagée créée précédemment.
<mongo id="mongo" libraryRef="MongoLib" />
- Configurez l'élément mongoDB.
<mongoDB jndiName="mongo/testdb" mongoRef="mongo" databaseName="db-test" />
La configuration d'un nom JNDI permet à une application ou à l'environnement d'exécution Liberty de rechercher une instance MongoDB.
- Activez votre application en vue de l'accès à MongoDB.
L'exemple suivant illustre une recherche JNDI et une injection de ressource :
public class TestServlet extends HttpServlet {
@Resource(name = "mongo/testdb")
protected DB db;
...
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// Alternatively use InitialContext lookup
DB lookup = (DB) new InitialContext().lookup("java:comp/env/mongo/testdb");
...
- Si vous utilisez la recherche JNDI, ajoutez une référence d'environnement de ressource au fichier web.xml de votre application :
<resource-env-ref>
<resource-env-ref-name>mongo/testdb</resource-env-ref-name>
<resource-env-ref-type>com.mongodb.DB</resource-env-ref-type>
</resource-env-ref>
Que faire ensuite
Testez l'utilisation de MongoDB à partir de votre application.
Pour en savoir plus sur l'élément MongoDB, voir MongoDB Integration 2.0.