2013-04-23 27 views
0

這裏是我的代碼當我使用MySQL數據庫系統的Jena2,我得到java.lang.NoSuchMethodError

import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.io.UnsupportedEncodingException; 
import java.sql.SQLException; 

import com.hp.hpl.jena.db.DBConnection; 
import com.hp.hpl.jena.db.IDBConnection; 
import com.hp.hpl.jena.rdf.model.Model; 
import com.hp.hpl.jena.rdf.model.ModelFactory; 
import com.hp.hpl.jena.rdf.model.ModelMaker; 

public class myontoly { 

    public static final String MYSQL_DB_CLASSNAME = "com.mysql.jdbc.Driver"; 



     public static final String MYSQL_DB_URL = 

      "jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=UTF8"; 



     public static final String MYSQL_DB_USER = "root"; 



     public static final String MYSQL_DB_PASSWD = "mysql2011510"; 



     public static final String DB = "MySQL"; 



     public static void main(String[] args) { 

      //  loading the JDBC driver 

      try { 

       Class.forName(MYSQL_DB_CLASSNAME).newInstance(); 

      } catch (ClassNotFoundException e) { 

       // TODO Auto-generated catch block 

       e.printStackTrace(); 

      } catch (InstantiationException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IllegalAccessException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 



      //Create database connection 

      IDBConnection conn = new DBConnection(MYSQL_DB_URL, MYSQL_DB_USER, MYSQL_DB_PASSWD, DB); 

      //Use the connection to create a model maker 

      ModelMaker maker = ModelFactory.createModelRDBMaker(conn); 

      Model base = maker.createDefaultModel(); 



      FileInputStream inputStreamfile = null; 

      File file = new File("file:./Taxonomy.owl"); 

      try { 

       inputStreamfile = new FileInputStream(file); 

      } catch (FileNotFoundException e1) { 

       // TODO Auto-generated catch block 

       e1.printStackTrace(); 

      } 

      InputStreamReader in = null; 

      try { 

       in =new InputStreamReader(inputStreamfile, "UTF-8"); 

      } catch (UnsupportedEncodingException e1) { 

       // TODO Auto-generated catch block 

       e1.printStackTrace(); 

      } 

      base.read(in, null); 

      try { 

       in.close(); 

      } catch (IOException e1) { 

       // TODO Auto-generated catch block 

       e1.printStackTrace(); 

      } 

      base.commit(); 

      //Close the database connection 

      try { 

       conn.close(); 

      } catch (SQLException e) { 

       // TODO Auto-generated catch block 

       e.printStackTrace(); 

      } 
     }} 

錯誤信息,,我試圖耶拿2.4,2.6.4 異常線程「main 「java.lang.NoSuchMethodError:com.hp.hpl.jena.rdf.model.ModelFactory.createModelRDBMaker(Lcom/hp/hpl/jena/db/IDBConnection;)Lcom/hp/hpl/jena/rdf/model/ModelMaker; at com.webservicecom.mysql.myontoly.main(myontoly.java:71))

回答

1

這是一個非常舊的耶拿版本。請使用current Jena distribution的最新版本再試一次。

+0

我曾嘗試lateen版本jena2.10,但我找不到jana.jar包。 – jack 2013-04-24 01:15:25

+0

當我導入jena 2.10的lib文件夾的jar文件時,它顯示錯誤,因爲它沒有識別DBConnection.please測試代碼,並告訴我如何修復它 – jack 2013-04-24 01:20:17

+2

舊的RDB數據庫層被棄用和刪除前一段時間。有兩個持久層:SDB(通過SQL數據庫)和TDB(自定義本地數據庫)。 TDB更快,規模更好。 – AndyS 2013-04-25 09:01:55

相關問題