Ciao gente, sto provando a realizzare una servlet per il web semantico che utilizza jena.
Come prova faccio fare solo una semplicissima query sparql ASK ma mi si genera un'eccezione:
type Exception report

message Servlet execution threw an exception
description The server encountered an internal error that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Servlet execution threw an exception
root cause
java.lang.NoClassDefFoundError: com/hp/hpl/jena/query/QueryExecutionFactory
QueryDBpedia.queryExternalSources(QueryDBpedia.jav a:51)
QueryDBpedia.doGet(QueryDBpedia.java:25)
javax.servlet.http.HttpServlet.service(HttpServlet .java:621)
javax.servlet.http.HttpServlet.service(HttpServlet .java:728)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.42 logs.


Preciso che qualsiasi altra query faccia fare alla servlet ottengo sempre un'eccezione.

Il codice della mia servlet è:
codice:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.hp.hpl.jena.query.*;

public class QueryDBpedia extends HttpServlet{

...

    public void queryExternalSources(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter output = response.getWriter();
         output.write("La servlet è stata invocata con il metodo " +  request.getMethod()); //Serve, in fase di esecuzione, per capire con  quale metodo (GET o POST) è stata invocata la servlet
        
        String query = "ASK { }";
        QueryExecution qe=null;
        try {
            qe = QueryExecutionFactory.sparqlService("http://it.dbpedia.org/sparql", query);
        } catch (Exception e) {
            output.write("Si è verificata un'eccezione nella creazione della query: " + query);
            e.printStackTrace(output);
        }
        try {
            if (qe.execAsk()) {
                output.write("is UP");
            }
            else {
                output.write("is DOWN");
            }
        } catch (Exception e) {
            output.write("Si è verificata un'eccezione: ");
            e.printStackTrace(output);
        } finally {
            qe.close();
        }
        
    }
}
Qualcuno sa dirmi di che problema si tratta e come faccio a risolverlo???
Grazie, attendo vostre notizie...rispondete numerosi!!!