Javascript 错误ajax和Jena

Javascript 错误ajax和Jena,javascript,ajax,servlets,jena,Javascript,Ajax,Servlets,Jena,当我尝试在servlet中使用AJAX调用Jena时,出现以下错误: 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

当我尝试在servlet中使用AJAX调用Jena时,出现以下错误:

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)
这是我的Jena代码:

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();}
}
它运行得很好,但是当我使用servlet调用这个函数时,我得到了前面描述的错误

这是我的servlet代码:

@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");
}
运行良好的java脚本代码:

$("#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 />");
  });
}
$(“#分析器”)。单击(函数(){
var article=$(“#TxtArea”).val();
ajaxFunction(“acteur”,文章);
console.log(文章);
});
函数getXMLObject()//XML对象
{
var xmlHttp=false;
试一试{
xmlHttp=newActiveXObject(“Msxml2.xmlHttp”)//适用于旧的Microsoft浏览器
}
捕获(e){
试一试{
xmlHttp=newActiveXObject(“Microsoft.xmlHttp”)//适用于Microsoft IE 6.0+
}
渔获物(e2){
xmlHttp=false//没有浏览器接受xmlHttp对象,则为false
}
}
如果(!xmlHttp&&typeof XMLHttpRequest!=“未定义”){
xmlHttp=new XMLHttpRequest();//对于Mozilla、Opera浏览器
}
return xmlHttp;//返回创建的ajax对象的强制语句
}
var xmlhttp=new getXMLObject()//xmlhttp保存ajax对象
函数ajaxFunction(valeur,txt){
if(xmlhttp){
open(“GET”,“ajax?service=ajax&valeur=“+valeur+”&text=“+txt,true”);
xmlhttp.onreadystatechange=handleServerResponse;
setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xmlhttp.send(空);
}
}
函数handleServerResponse(){
if(xmlhttp.readyState==4){
if(xmlhttp.status==200){
$(“#J”)。正文(“”);
parseXml(xmlhttp.responseXML);
}
否则{
//警报(“AJAX调用期间出错,请重试”);
}
}
}
函数解析xml(xml)
{
$(xml).find(“nom”).each(function()
{
$(“#J”).append($(this.text()+”
); }); }
在pom中,我声明了旧版本的Arq 1.8.7,而不是2.8.7。现在运行良好。

在pom中,我声明了旧版本的Arq 1.8.7,而不是2.8.7。现在运行正常。

在声明类时,似乎缺少了
public
选项。这只是问题中的一个错误吗?这是公共类,我只是忘记了在这个评论中添加公共,对不起。但我已经解决了这个问题。在pom中,我声明了旧版本的Arq 1.8.7,而不是2.8.7。现在运行正常:)在声明类时,似乎缺少了
public
选项。这只是问题中的一个错误吗?这是公共类,我只是忘记了在这个评论中添加公共,对不起。但我已经解决了这个问题。在pom中,我声明了旧版本的Arq 1.8.7,而不是2.8.7。现在运行正常:)