Interroger une ontologie via une plateforme
j'ai un projet qui est : Interroger une ontologie créé sous protége via une plateforme (une application web) et pour cela j'ai utilisé une servlet avec ce code ,mais il y a toujours une erreur que je ne comprends pas
est ce que le problème est au niveau du servlet ou au niveau de jars de jena utilisées ,
svp aider moi;
le code de servlet :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.jena.query.Query;
import org.apache.jena.query.QueryExecution;
import org.apache.jena.query.QueryExecutionFactory;
import org.apache.jena.query.QueryFactory;
import org.apache.jena.query.QuerySolution;
import org.apache.jena.query.ResultSet;
import org.apache.jena.rdf.model.Literal;
import org.apache.jena.rdf.model.Model;
import org.apache.jena.util.FileManager;
@WebServlet(urlPatterns = {"/tryfial"})
public class tryfial extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List <String> bases=getBases();
request.setAttribute("bases", bases);
request.getRequestDispatcher("resultat.jsp").forward(request, response);
}
private List<String> getBases(){
String queryString="PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>"
+"PREFIX owl: <http://www.w3.org/2002/07/owl#>"
+"PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>"
+"PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>"
+"PREFIX ont: <http://wwws.owl-ontologies.com/unnamed.owl#>"
+""
+ "SELECT *"
+ " WHERE "
+ "{"
+ "?Proteins ont:Super_Protein ?Super_Protein"
+ " } ";
System.out.println(queryString);
List<String> values= new ArrayList<>();
Model model = FileManager.get().loadModel("C:/pro/PrOnto.owl");
Query query = QueryFactory.create(queryString);
QueryExecution qexec = QueryExecutionFactory.create(query, model) ;
try {
ResultSet rs = qexec.execSelect() ;
while ( rs.hasNext()){
QuerySolution rb = rs.nextSolution() ;
Literal y = rb.getLiteral("Super_Protein");
values.add(y.toString());
System.out.println(y);
}
}finally{
qexec.close();}
return values;
}
} |
et voilà l'erreur:
Citation:
HTTP Status 500 - Internal Server Error
type Exception report
messageInternal Server Error
descriptionThe server encountered an internal error that prevented it from fulfilling this request.
exception
java.util.ServiceConfigurationError: org.apache.jena.sys.JenaSubsystemLifecycle: Provider org.apache.jena.query.spatial.InitJenaSpatial not a subtype
note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 4.1.1 logs.
GlassFish Server Open Source Edition 4.1.1