JSP : problème pour instancier une classe Java

Résolu
Milly7534 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   -  
Milly7534 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je programme en J2EE et j'essaye d'exécuter les fonctions de mes classes dans une page JSP.
Pour ce faire, je crée une instance de chaque classe dans la page mais pour une d'entre elles, j'ai cette erreur :

Etat HTTP 500 - javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/openrdf/repository/Repository

type Rapport d''exception
message javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/openrdf/repository/Repository
description Le serveur a rencontré une erreur interne qui l''a empêché de satisfaire la requête.

exception

org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/openrdf/repository/Repository org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
controleur.OXeean_page.doGet(OXeean_page.java:59)
javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
...
...

Je précise que cette classe permet une connexion au triplestore Sesame et d'exécuter des requêtes SPARQL.
Dans ma classe, j'importe le package correspondant qui semble être le sujet de l'erreur :

import org.openrdf.repository.Repository;

Je comprends pas pourquoi cela pose problème.

Merci d'avance pour votre aide !

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Faire un import ne suffit pas, il faut aussi que la classe importée soit dans le classpath à l'exécution, généralement on mettra donc le jar de la bibliothèque dans le war de l'application web.
0
Milly7534 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
Excuse-moi mais je ne vois pas trop ce que tu veux dire par là
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Ce que je veux dire, c'est que lors de l'exécution, Java ne retrouve pas la classe org.openrdf.repository.Repository, celle-ci était sûrement disponible lorsque tu as compilé le code (configurée dans Eclipse par exemple) mais elle n'est pas disponible sur le serveur, il faut la rajouter.

Il faudrait en savoir plus sur la manière dont tu as fait ton déploiement. Le plus simple est d'utiliser Maven mais tu as sûrement fait autrement, si bien que si tu regardes les fichiers sur ton serveur, tu dois avoir ton code, mais pas la bibliothèque openrdf (un jar sans doute) qu'il faudrait rajouter.
0
Milly7534 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour ta réponse ! J'ai copié tous mes JAR dans le répertoire /lib de WEB-INF et j'ai de nouveau accès à ma page web. Maintenant, je cherche désespérément comment exécuter mes fonctions...
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Et bien dans ta page jsp tu dois faire un formulaire html, qui enverra tous les paramètres à ta servlet, qui les récupérera et les enverra à la couche métier pour traitement, celui-ci te renverra le résultat que tu pourras afficher dans une jsp résultat.

Tu peux regarder un de mes codes pour t'en inspirer (il est fait pour ça) :
Exemple simple d'application JSTL
0
Milly7534 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour ! Merci pour ton code :) Ca m'a aidé mais du coup je me demande : mon application n'a besoin que d'une seule page, est-ce que je dois quand même avoir un servlet et une JSP pour chaque traitement ?
0