Topic
9 replies Latest Post - ‏2013-07-22T05:33:01Z by Mario Briggs
A9WD_Gerd_Anders
A9WD_Gerd_Anders
5 Posts
ACCEPTED ANSWER

Pinned topic loadrdfstore fails, but why?

‏2013-07-18T07:59:09Z |

Hi all,

using DB2 LUW v10.5 (also used v10.1 because of my difficulties described below) I tried to get familar with the RDF store in DB2.

The todos for the configurations are taken into account and createrdfstore was successfully executed:

createrdfstore myrdfstore -db RDFSAMPL -user db2demo3 -password <password> -schema db2demo3 -host <myhost> -port 59999

createrdfstore abgeschlossen. (i. e. output in German, but it did it)

For loadrdfstore I used arbitrarily an nt input file from a dW article without success, removed all data in there but the first line and also tried an empty input file. However, each time I get the following error note running the command from a Linux terminal using a bash:

loadrdfstore myrdfstore -host <myhost> -port 59999 -db RDFSAMPL -user db2demo3 -password <password> -schema db2demo3 /home/db2demo3/mysample.nt
Exception in thread "main" java.lang.VerifyError: (class: com/ibm/rdf/store/cmd/LoadRdfStore, method: loadToDefault signature: (Lcom/ibm/rdf/store/Store;Ljava/sql/Connection;Lcom/hp/hpl/jena/query/Dataset;Ljava/lang/String;Lorg/openjena/riot/Lang;)J) Incompatible argument to function
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2451)
        at java.lang.Class.getMethod0(Class.java:2694)
        at java.lang.Class.getMethod(Class.java:1622)
        at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)

Is there anybody facing such an error message before and was able to solve it? Is there maybe any additional parameter to use? Or can somebody provide a single line of nt input which is supposed to work? Thanks in advance for any hint.

  • Mario Briggs
    Mario Briggs
    5 Posts
    ACCEPTED ANSWER

    Re: loadrdfstore fails, but why?

    ‏2013-07-19T10:28:17Z  in response to A9WD_Gerd_Anders

    Can you list the versions of the JENA jars you have in the 'lib' folder ( or wherever you place them and added to classpath). To me the error seems related to the wrong version of jena jars . I have seen some folks put multiple versions (old and new) of the JENA jars in 'lib' or classpath, by chance are you doing so. You need to put only the required version of the jars

    http://pic.dhe.ibm.com/infocenter/db2luw/v10r1/topic/com.ibm.swg.im.dbclient.rdf.doc/doc/c0060359.html

    Mario

     

    • A9WD_Gerd_Anders
      A9WD_Gerd_Anders
      5 Posts
      ACCEPTED ANSWER

      Re: loadrdfstore fails, but why?

      ‏2013-07-19T11:21:54Z  in response to Mario Briggs

      Hi Mario,

      thanks for your hint. Here are more information based on using V10.5:

      rpm -qa | grep -i commons
      apache-commons-logging-1.1.1-6.1.1.noarch

      BEFORE (copying ARQ-2.8.5):

      ls -1 /opt/ibm/db2/V10.5/rdf/lib/
      antlr-3.3-java.jar
      db2rdf.jar
      rdfstore.jar
      wala.jar

      AFTER (copying ARQ-2.8.5):

      ls -1 /opt/ibm/db2/V10.5/rdf/lib/
      antlr-3.3-java.jar
      arq-2.8.5.jar
      arq-2.8.5-tests.jar
      db2rdf.jar
      icu4j-3.4.4.jar
      iri-0.8.jar
      iri-0.8-sources.jar
      jena-2.6.3.jar
      jena-2.6.3-sources.jar
      jena-2.6.3-tests.jar
      jena-2.6.3-test-sources.jar
      junit-4.5.jar
      log4j-1.2.14.jar
      lucene-core-2.3.1.jar
      rdfstore.jar
      slf4j-api-1.5.8.jar
      slf4j-log4j12-1.5.8.jar
      stax-api-1.0.1.jar
      wala.jar
      wstx-asl-3.2.9.jar
      xercesImpl-2.7.1.jar

      printenv CLASSPATH

      /opt/ibm/db2/V10.5/rdf/lib/antlr-3.3-java.jar:/opt/ibm/db2/V10.5/rdf/lib/db2rdf.jar:/opt/ibm/db2/V10.5/rdf/lib/rdfstore.jar:/opt/ibm/db2/V10.5/rdf/lib/wala.jar:/usr/share/java/apache-commons-logging.jar:/opt/ibm/db2/V10.5/java/db2jcc4.jar:/home/db2demo3/sqllib/java/db2java.zip:/home/db2demo3/sqllib/java/sqlj.zip:/home/db2demo3/sqllib/function:/home/db2demo3/sqllib/java/db2jcc_license_cu.jar:/home/db2demo3/sqllib/tools/clpplus.jar:/home/db2demo3/sqllib/tools/jline-0.9.93.jar:.

      Applying loadrdfstore again results into a different error message:

      Exception in thread "main" java.lang.NoSuchFieldError: defaultQuerySyntax
              at com.ibm.rdf.store.jena.DB2.initialization1(Unknown Source)
              at com.ibm.rdf.store.jena.DB2.<clinit>(Unknown Source)
              at com.ibm.rdf.store.StoreManager.<clinit>(Unknown Source)
              at com.ibm.rdf.store.cmd.LoadRdfStore.doWork(Unknown Source)
              at com.ibm.rdf.store.cmd.AbstractRdfCommand.runCmd(Unknown Source)
              at com.ibm.rdf.store.cmd.LoadRdfStore.main(Unknown Source)

  • Mario Briggs
    Mario Briggs
    5 Posts
    ACCEPTED ANSWER

    Re: loadrdfstore fails, but why?

    ‏2013-07-19T11:29:38Z  in response to A9WD_Gerd_Anders

    10.1 FP2 and 10.5 requires Apache JENA Version 2.7.3. Delete all ARQ-2.8.5 jars & add 2.7.3 jars and retry

    • A9WD_Gerd_Anders
      A9WD_Gerd_Anders
      5 Posts
      ACCEPTED ANSWER

      Re: loadrdfstore fails, but why?

      ‏2013-07-19T12:38:00Z  in response to Mario Briggs

      After removing the ARQ-*jars in /opt/ibm/db2/V10.5/rdf/lib it contains the following jars:

      ls -1 /opt/ibm/db2/V10.5/rdf/lib/
      antlr-3.3-java.jar
      db2rdf.jar
      rdfstore.jar
      wala.ja

       

      Now I added the jena v2.7.3-Files and then it looks like that:

      ls -1 /opt/ibm/db2/V10.5/rdf/lib/
      antlr-3.3-java.jar
      commons-codec-1.5.jar
      db2rdf.jar
      httpclient-4.1.2.jar
      httpcore-4.1.3.jar
      jena-arq-2.9.3.jar
      jena-core-2.7.3.jar
      jena-iri-0.9.3.jar
      jena-tdb-0.9.3.jar
      log4j-1.2.16.jar
      rdfstore.jar
      slf4j-api-1.6.4.jar
      slf4j-log4j12-1.6.4.jar
      wala.jar
      xercesImpl-2.10.0.jar
      xml-apis-1.4.01.jar

      Without any ARQ-*jars I re-tried to run loadrdfstore again, which results into the following error message:

      Exception in thread "main" java.lang.NoClassDefFoundError: com/hp/hpl/jena/graph/Graph
              at java.lang.Class.getDeclaredMethods0(Native Method)
              at java.lang.Class.privateGetDeclaredMethods(Class.java:2451)
              at java.lang.Class.getMethod0(Class.java:2694)
              at java.lang.Class.getMethod(Class.java:1622)
              at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
              at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
      Caused by: java.lang.ClassNotFoundException: com.hp.hpl.jena.graph.Graph
              at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
              at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
              at java.security.AccessController.doPrivileged(Native Method)
              at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
              at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
              ... 6 more

      Then I copied the ARQ-*jars, excluding the *source*- and *test*-jars:

      ls -1 /opt/ibm/db2/V10.5/rdf/lib/
      antlr-3.3-java.jar
      arq-2.8.5.jar
      commons-codec-1.5.jar
      db2rdf.jar
      httpclient-4.1.2.jar
      httpcore-4.1.3.jar
      icu4j-3.4.4.jar
      iri-0.8.jar
      jena-2.6.3.jar
      jena-arq-2.9.3.jar
      jena-core-2.7.3.jar
      jena-iri-0.9.3.jar
      jena-tdb-0.9.3.jar
      junit-4.5.jar
      log4j-1.2.14.jar
      log4j-1.2.16.jar
      lucene-core-2.3.1.jar
      rdfstore.jar
      slf4j-api-1.5.8.jar
      slf4j-api-1.6.4.jar
      slf4j-log4j12-1.5.8.jar
      slf4j-log4j12-1.6.4.jar
      stax-api-1.0.1.jar
      wala.jar
      wstx-asl-3.2.9.jar
      xercesImpl-2.10.0.jar
      xercesImpl-2.7.1.jar
      xml-apis-1.4.01.jar

      Re-running loadrdstore results into the following error message:

      Exception in thread "main" java.lang.NoSuchFieldError: defaultQuerySyntax
              at com.ibm.rdf.store.jena.DB2.initialization1(Unknown Source)
              at com.ibm.rdf.store.jena.DB2.<clinit>(Unknown Source)
              at com.ibm.rdf.store.StoreManager.<clinit>(Unknown Source)
              at com.ibm.rdf.store.cmd.LoadRdfStore.doWork(Unknown Source)
              at com.ibm.rdf.store.cmd.AbstractRdfCommand.runCmd(Unknown Source)
              at com.ibm.rdf.store.cmd.LoadRdfStore.main(Unknown Source)

      Just to give I try, also removing "duplicates", which I did manually solely results into other error messages...

      rm xercesImpl-2.7.1.jar slf4j-api-1.5.8.jar slf4j-log4j12-1.5.8.jar

  • Mario Briggs
    Mario Briggs
    5 Posts
    ACCEPTED ANSWER

    Re: loadrdfstore fails, but why?

    ‏2013-07-19T13:45:40Z  in response to A9WD_Gerd_Anders

    I find discrepancy in what your steps below.... let me explain

    >>

    After removing the ARQ-*jars in /opt/ibm/db2/V10.5/rdf/lib it contains the following jars:

    ....

    <<

    this is fine.

     

    >>

    Now I added the jena v2.7.3-Files and then it looks like that:

    ...

    <<

    this is also fine.

    >>

    Without any ARQ-*jars I re-tried to run loadrdfstore again,

    <<

    In the previous step you have added v2.7.3 files, so after that, how do you say 'without any ARQ-* jars. However the error message you got is the correct one when you will not have any jena jar files at all. So i assume you wanted to put this step , 1 step higher ?

     

    >>

    Then I copied the ARQ-*jars, excluding the *source*- and *test*-jars:

    arq-2.8.5.jar
    ...
    jena-2.6.3.jar
    jena-arq-2.9.3.jar
    jena-core-2.7.3.jar

    <<

    Notice that you now have both 2.8.5 and 2.9.3. With 10.5 you need ONLY v-2.7.3 jars (u shouldnt keep the 2.8.5/2.6.3 jars). In your current setting, these 2.8.5/2.6.3 jars are getting resolved first and that is the issue. Please put only the jena v2.7.3-Files

    Mario

     

    • A9WD_Gerd_Anders
      A9WD_Gerd_Anders
      5 Posts
      ACCEPTED ANSWER

      Re: loadrdfstore fails, but why?

      ‏2013-07-19T14:19:42Z  in response to Mario Briggs

      Thanks again for your reply, Mario. Regarding your weblink above it is written:

      After the DB2 database server is installed, complete the following tasks to use DB2 RDF command-line utilities:

      1. Download ARQ package Version 2.8.5 from http://sourceforge.net/projects/jena/files/ARQ/ARQ-2.8.5/.
        Copy the JAR files from the lib folder of the ARQ package to the <install_path>/SQLLIB/rdf/lib directory.
        Note: You can skip copying over the 'xxx-tests.jar', 'xxx-sources.jar', 'xxx-test-sources.jar' JAR files.

        Starting with DB2 Version 10.1 Fix Pack 2, use the Apache JENA Version 2.7.3 package from http://archive.apache.org/dist/jena/binaries/.

        Save the JAR files from the lib folder of the Apache JENA package to the <install_path>/SQLLIB/rdf/lib directory.

      Thus, regarding your recommendations I removed all ARQ-*files in the */rdf/lib/ directory and then as a very first step solely just added those ones from the jena/binaries/ package as written in the documentation. I was not sure if that is already all to do regardig the documentation, so I just tried loadrdfstore, but it resulted in the error message mentioned above. Thus, I thought, when in the online documentation also ARQ-*jars are supposed to be placed into the same */rdf/lib/ directory, so I will just do it as a second step, keeping the already placed jena files. I realised that there are files just with a different version in the file name, which confused me. Anyways. In brief: Neiher just putting the jena v2.7.3 jar files into */rdf/lib/ as first step nor additionally certain ARQ-*jar files as second step resulted into a running loadrdfstore. I. e., regarding your latest recommendation just putting te jena files into that directory still results into an error message listed above. Now I reduced it to that subset of files (only the jena v2.7.3 jar):

      /opt/ibm/db2/V10.5/rdf/lib # ls -1 *.jar
      antlr-3.3-java.jar
      commons-codec-1.5.jar
      db2rdf.jar
      httpclient-4.1.2.jar
      httpcore-4.1.3.jar
      jena-core-2.7.3.jar
      log4j-1.2.16.jar
      rdfstore.jar
      slf4j-api-1.6.4.jar
      slf4j-log4j12-1.6.4.jar
      wala.jar
      xercesImpl-2.10.0.jar
      xml-apis-1.4.01.jar

      and receive that error messages:

      Exception in thread "main" java.lang.NoClassDefFoundError: com/hp/hpl/jena/graph/Graph
              at java.lang.Class.getDeclaredMethods0(Native Method)
              at java.lang.Class.privateGetDeclaredMethods(Class.java:2451)
              at java.lang.Class.getMethod0(Class.java:2694)
              at java.lang.Class.getMethod(Class.java:1622)
              at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
              at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
      Caused by: java.lang.ClassNotFoundException: com.hp.hpl.jena.graph.Graph
              at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
              at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
              at java.security.AccessController.doPrivileged(Native Method)
              at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
              at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
              ... 6 more

      I am pretty sure that I do something wrong, but  still do not know what it is...

      • Mario Briggs
        Mario Briggs
        5 Posts
        ACCEPTED ANSWER

        Re: loadrdfstore fails, but why?

        ‏2013-07-19T14:47:39Z  in response to A9WD_Gerd_Anders

        thanks for clarifying. You are missing only 1 jar now - 'jena-arq-2.9.3.jar' . Please add that & you should be good to go.

        Mario

        • A9WD_Gerd_Anders
          A9WD_Gerd_Anders
          5 Posts
          ACCEPTED ANSWER

          Re: loadrdfstore fails, but why?

          ‏2013-07-21T12:05:02Z  in response to Mario Briggs

          No, unfortunately it still does not work, same error message as above. Here are the current files, including jena-arq-2.9.3.jar (based on apache-jena-2.9.3.tar.gz and arq-2.8.5.tar.gz):


          antlr-3.3-java.jar
          commons-codec-1.5.jar
          db2rdf.jar
          httpclient-4.1.2.jar
          httpcore-4.1.3.jar
          jena-arq-2.9.3.jar
          jena-core-2.7.3.jar
          log4j-1.2.16.jar
          rdfstore.jar
          slf4j-api-1.6.4.jar
          slf4j-log4j12-1.6.4.jar
          wala.jar
          xercesImpl-2.10.0.jar
          xml-apis-1.4.01.jar

          That is the error message:

          Exception in thread "main" java.lang.NoClassDefFoundError: com/hp/hpl/jena/graph/Graph
                  at java.lang.Class.getDeclaredMethods0(Native Method)
                  at java.lang.Class.privateGetDeclaredMethods(Class.java:2451)
                  at java.lang.Class.getMethod0(Class.java:2694)
                  at java.lang.Class.getMethod(Class.java:1622)
                  at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
                  at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
          Caused by: java.lang.ClassNotFoundException: com.hp.hpl.jena.graph.Graph                                                                                                                                           
                  at java.net.URLClassLoader$1.run(URLClassLoader.java:366)                                                                                                                                                  
                  at java.net.URLClassLoader$1.run(URLClassLoader.java:355)                                                                                                                                                  
                  at java.security.AccessController.doPrivileged(Native Method)                                                                                                                                              
                  at java.net.URLClassLoader.findClass(URLClassLoader.java:354)                                                                                                                                              
                  at java.lang.ClassLoader.loadClass(ClassLoader.java:423)                                                                                                                                                   
                  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)                                                                                                                                           
                  at java.lang.ClassLoader.loadClass(ClassLoader.java:356)                                                                                                                                                   
                  ... 6 more

          And here ae the jars that may include any graph classes regarding the error message:

          antlr-3.3-java.jar
          commons-codec-1.5.jar
          db2rdf.jar
          httpclient-4.1.2.jar
          httpcore-4.1.3.jar
          jena-arq-2.9.3.jar
          jena-core-2.7.3.jar
               862  Defl:N      398  54% 2012-08-03 11:41 d75aa145  com/hp/hpl/jena/graph/Graph$1.class
              1973  Defl:N      717  64% 2012-08-03 11:41 859fdb91  com/hp/hpl/jena/graph/Graph.class
               239  Defl:N      175  27% 2012-08-03 11:41 956d4b83  com/hp/hpl/jena/graph/GraphAdd.class
               550  Defl:N      272  51% 2012-08-03 11:41 87f49c76  com/hp/hpl/jena/graph/GraphEventManager.class
               685  Defl:N      368  46% 2012-08-03 11:41 2372989c  com/hp/hpl/jena/graph/GraphEvents$1.class
               798  Defl:N      402  50% 2012-08-03 11:41 30a4166d  com/hp/hpl/jena/graph/GraphEvents$2.class
              2140  Defl:N      934  56% 2012-08-03 11:41 5e743f74  com/hp/hpl/jena/graph/GraphEvents.class
              2117  Defl:N      974  54% 2012-08-03 11:41 3cdcc847  com/hp/hpl/jena/graph/GraphExtract$Extraction.class
              1324  Defl:N      551  58% 2012-08-03 11:41 8d43bfab  com/hp/hpl/jena/graph/GraphExtract.class
               990  Defl:N      338  66% 2012-08-03 11:41 f2af9008  com/hp/hpl/jena/graph/GraphListener.class
               709  Defl:N      323  54% 2012-08-03 11:41 53d4ad04  com/hp/hpl/jena/graph/GraphMaker.class
               260  Defl:N      150  42% 2012-08-03 11:41 8503071b  com/hp/hpl/jena/graph/GraphStatisticsHandler.class
               845  Defl:N      380  55% 2012-08-03 11:41 0c2d4cef  com/hp/hpl/jena/graph/GraphUtil.class
          log4j-1.2.16.jar
          rdfstore.jar
          slf4j-api-1.6.4.jar
          slf4j-log4j12-1.6.4.jar
          wala.jar
          xercesImpl-2.10.0.jar
          xml-apis-1.4.01.jar

          And that is my modified CLASSPATH:

          /opt/ibm/db2/V10.5/rdf/lib/jena-core-2.7.3.jar:/opt/ibm/db2/V10.5/rdf/lib/jena-arq-2.9.3.jar:/opt/ibm/db2/V10.5/rdf/lib/antlr-3.3-java.jar:/opt/ibm/db2/V10.5/rdf/lib/db2rdf.jar:/opt/ibm/db2/V10.5/rdf/lib/rdfstore.jar:/opt/ibm/db2/V10.5/rdf/lib/wala.jar:/usr/share/java/apache-commons-logging.jar:/opt/ibm/db2/V10.5/java/db2jcc4.jar:/home/db2demo3/sqllib/java/db2java.zip:/home/db2demo3/sqllib/java/sqlj.zip:/home/db2demo3/sqllib/function:/home/db2demo3/sqllib/java/db2jcc_license_cu.jar:/home/db2demo3/sqllib/tools/clpplus.jar:/home/db2demo3/sqllib/tools/jline-0.9.93.jar:/home/db2demo3/sqllib/java/db2jcc.jar:.

  • Mario Briggs
    Mario Briggs
    5 Posts
    ACCEPTED ANSWER

    Re: loadrdfstore fails, but why?

    ‏2013-07-22T05:33:01Z  in response to A9WD_Gerd_Anders

    the way the .bat/sh files in rdf/bin folder work is like this

     they call setup.bat/sh . if you open that & take a look at setup.bat/sh, you see that it makes up the classpath as follows

             all the jar files from the rdf/lib folder

             then add whatever is in the user classpath

    Therefore it is not required to have the rdf/lib jars in the classpath, since the bat/sh files will do that. Finally you are right that com/hp/hpl/jena/graph/Graph exists in jena-core-2.7.3.jar as you have shown. Thus based on what the .bat/.sh files do, you shouldnt hit the problem., if you have some gmail/yahoo instant messaging it might be more helpful that way