1

这是我的耶拿代码:

package neww;
import static com.hp.hpl.jena.query.ReadWrite.READ ;
import static com.hp.hpl.jena.query.ReadWrite.WRITE ;
import com.hp.hpl.jena.query.ReadWrite ;
import com.hp.hpl.jena.query.Dataset ;
import com.hp.hpl.jena.query.Query ;
import com.hp.hpl.jena.query.QueryExecution ;
import com.hp.hpl.jena.query.QueryExecutionFactory ;
import com.hp.hpl.jena.query.QueryFactory ;
import com.hp.hpl.jena.query.QuerySolution ;
import com.hp.hpl.jena.query.ResultSet ;
import com.hp.hpl.jena.tdb.TDBFactory ;
import com.hp.hpl.jena.query.ResultSetFormatter;

import com.hp.hpl.jena.rdf.model.Model;

import com.hp.hpl.jena.rdf.model.*;
import com.hp.hpl.jena.vocabulary.*;
import java.util.Iterator;
import java.util.Scanner;
import com.hp.hpl.jena.sparql.sse.SSE ;

import com.hp.hpl.jena.update.* ;

import java.util.*;
public class Si{
public String retur(){
String query1;
            query1="hjcooljohny75@gmail.com";
            //query1 = (String)(subjectentry.getText());
            String s="SELECT ?x WHERE { ?x <TO:> '"+query1+"'}";
            //   subjectoutput.setText(s);
            String directory = "/usr/local/apache-tomcat-8.0.8/webapps/examples/WEB-INF/classes/neww/MYDATABASES/DATA2" ;
            Dataset ds = TDBFactory.createDataset(directory) ;
            Model model = ds.getDefaultModel() ;
           ds.begin(ReadWrite.READ) ;
             QueryExecution qExec = QueryExecutionFactory.create(s, ds) ;
           ResultSet rs = qExec.execSelect() ;
           String x=rs.toString();
          String[] arr = null;

            while (rs.hasNext()) 
            {
                QuerySolution qs = rs.next();
                String rds = qs.get("x").toString();
               // String em = (String)rs.getString(0);
               //arr = em.split("\n");
               //for (int i =0; i < arr.length; i++){
              return rds; 
            }
             //if(rs==null)
                //subjectoutput.setText("sorry!!");
           String f="h";
           return x;

这给出了错误:

com.hp.hpl.jena.tdb.transaction.TDBTransactionException: Not in a transaction
    com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction.get(DatasetGraphTransaction.java:106)
    com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction.get(DatasetGraphTransaction.java:40)
    com.hp.hpl.jena.sparql.core.DatasetGraphTrackActive.getDefaultGraph(DatasetGraphTrackActive.java:91)
    com.hp.hpl.jena.sparql.core.DatasetImpl.getDefaultModel(DatasetImpl.java:103)
    neww.Si.retur(Si.java:35)
    org.apache.jsp.jsp.test1_jsp._jspService(test1_jsp.java:69)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:403)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:347)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)

我确信我的 sparql 查询是正确的,因为这段代码运行良好!!当我在命令行中运行它时,这段代码运行良好,但是当我使用 tomcat 在 jsp 中导入它时出现上述错误。

4

0 回答 0