2011-11-22 5 views
1

私は私のサーブレットでAJAXを使用してイエナを呼び出そうとすると、私はこのエラーを取得:エラーアヤックスとイエナ

java.lang.ClassNotFoundException: com.hp.hpl.jena.sparql.core.Prologue 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516) 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361) 
at fr.objective.blogomatic.semantic.web.ServletAjax.doGet(ServletAjax.java:40) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
at java.lang.Thread.run(Unknown Source) 

これは私のイエナコードです:

class classUsingJena { 
public void execute(){ 

String queryString = PREFIXES 
         + " Select ?label " 
         + " where {" 
         + " ?description j.5:entity-label ?label ."      + " } "; 

Query query = QueryFactory.create(queryString); 
QueryExecution qe = QueryExecutionFactory.create(query, model); 
ResultSet results = qe.execSelect(); 
ResultSetFormatter.out(System.out,results, query); 
qe.close();} 
} 

それは罰金実行しているが、ときに私ですサーブレットを使用してこの関数を呼び出す前に説明したエラーが発生します。

これは私のサーブレットのコードです:正常に動作

@Override 
protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
     throws ServletException, IOException { 
    String service = req.getParameter("service"); 
      classUsingJena jena= new classUsingJena() //bug 
    return;} 
@Override 
protected void doPost(HttpServletRequest req, HttpServletResponse resp) 
     throws ServletException, IOException { 
    doGet(req, resp); 
} 

@Override 
public void init() throws ServletException { 
    ServletConfig config = getServletConfig(); 
    urlAjax = config.getInitParameter("urlAjax"); 
} 

マイジャバスクリプトコード:POMで

$("#Analyser").click(function(){ 

     var article = $("#TxtArea").val(); 
     ajaxFunction("acteur",article); 

     console.log(article); 
    }); 
function getXMLObject() //XML OBJECT 
{ 
    var xmlHttp = false; 
    try { 
     xmlHttp = new ActiveXObject("Msxml2.XMLHTTP") // For Old Microsoft Browsers 
     } 
    catch (e) { 
     try { 
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP") // For Microsoft IE 6.0+ 
      } 
    catch (e2) { 
     xmlHttp = false // No Browser accepts the XMLHTTP Object then false 
     } 
    } 

    if (!xmlHttp && typeof XMLHttpRequest != 'undefined') { 
     xmlHttp = new XMLHttpRequest();  //For Mozilla, Opera Browsers 
    } 
    return xmlHttp; // Mandatory Statement returning the ajax object created 
} 

var xmlhttp = new getXMLObject(); //xmlhttp holds the ajax object 



function ajaxFunction(valeur,txt) { 

    if(xmlhttp) { 
     xmlhttp.open("GET","ajax?service=ajax&valeur="+valeur+"&text="+txt,true); 
     xmlhttp.onreadystatechange = handleServerResponse; 
     xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
     xmlhttp.send(null); 
     } 
} 



function handleServerResponse() { 

    if (xmlhttp.readyState == 4) { 
     if(xmlhttp.status == 200) { 
      $("#J").text(""); 
      parseXml(xmlhttp.responseXML); 
     } 
     else { 
      //alert("Error during AJAX call. Please try again"); 
     } 
    } 
} 

function parseXml(xml) 
{ 
    $(xml).find("nom").each(function() 
    { 
    $("#J").append($(this).text() + "<br />"); 
    }); 
} 
+0

クラスを宣言するときに 'public'オプションがないようです。それは単なる間違いですか? – Pointy

+0

それはパブリッククラスです、私はこのコメントにpublicを追加することを忘れてしまいます、ごめんなさい。私はこの問題を解決しました。 pomで2.8.7の代わりにArq 1.8.7の古いバージョンを宣言しました。今それはうまく走っている:) – Allel

答えて

1

私の代わりに2.8のARQ 1.8.7の古いバージョンを宣言しました。 7。今は正常に動作しています。

関連する問題