JSP : problème pour instancier une classe Java
Résolu
Milly7534
Messages postés
29
Statut
Membre
-
Milly7534 Messages postés 29 Statut Membre -
Milly7534 Messages postés 29 Statut Membre -
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 :
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 :
Je comprends pas pourquoi cela pose problème.
Merci d'avance pour votre aide !
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
-
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.-
-
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. -
-
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 -
-