I'm always wondering how people that are new to Apache Jena still use
the old version. I mean, the first hit via Google is the Apache Jena
webpage which clearly refers to the latest version.

In the current case, he just copied the code example from [1] which
indeed uses the old version given that the blog entry is from 2005.
Well, at this time I didn't know about Semantic Web at all...

[1] http://www.ldodds.com/projects/sparql/LastModified.txt


On 08.08.2018 22:14, Andy Seaborne wrote:
> com.hp.hpl.jena -- that's Jena2.
>
> Packages are "org.apache.jena" in Jena3.
>
> The code seems to have been compiled against Jena2 and run against
> Jena3.  That won't work.
>
>     Andy
>
> On 08/08/18 18:14, Arunkumar Krishnamoorthy wrote:
>> The java code i am executing is,
>>
>> package samplejena;
>>
>> import com.hp.hpl.jena.query.expr.NodeValue;
>> import com.hp.hpl.jena.query.function.FunctionBase1;
>>
>> import java.net.*;
>> import java.text.SimpleDateFormat;
>> import java.util.*;
>>
>> public class LastModified extends FunctionBase1
>> {
>> private static final SimpleDateFormat format = new
>> SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
>> private Map _cache;
>> public LastModified()
>> {
>> _cache = new HashMap();
>> }
>> public NodeValue exec(NodeValue nodeValue)
>> {
>> String value = nodeValue.asString();
>> if (_cache.containsKey(value))
>> {
>> return (NodeValue)_cache.get(value);
>> }
>>          String lastModified = "";
>> try {
>> lastModified = getLastModified( nodeValue.asString() );
>> } catch (Exception e) {
>> // TODO Auto-generated catch block
>> e.printStackTrace();
>> }
>>
>>          NodeValue date = NodeValue.makeDate(lastModified);
>>          _cache.put(value, date);
>>          return date;
>> }
>> public String getLastModified(String link) throws Exception
>> {
>> URL url = new URL(link);
>> URLConnection connection = url.openConnection();
>> connection.setAllowUserInteraction(false);
>> long secs = connection.getLastModified();
>> String xsdDate = dateToXSD(secs);
>> return xsdDate;
>> }
>> public String dateToXSD(long secs)
>> {
>> Date date = new Date(secs);
>> return format.format(date);
>> }
>> }
>>
>>
>>
>> On Wed, Aug 8, 2018 at 1:14 PM, Arunkumar Krishnamoorthy
>> <[email protected]>
>> wrote:
>>
>>> Hello Andy,
>>>
>>> I am getting the following issue when i run the code,
>>>
>>> Caused by: java.lang.ClassNotFoundException: com.hp.hpl.jena.query.
>>> function.FunctionBase1
>>> at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>>> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.j
>>>
>>> I have added the .class file in the directory. Do i need to package the
>>> dependancy jars also? Please advice.
>>>
>>> Regards,
>>> Arun
>>>
>>> On Tue, Aug 7, 2018 at 2:11 PM, Arunkumar Krishnamoorthy <
>>> [email protected]> wrote:
>>>
>>>> It is executing now Andy. Thanks a lot. I missed to add the directory.
>>>> Thanks again for this help.
>>>>
>>>> On Tue, Aug 7, 2018 at 2:06 PM, Andy Seaborne <[email protected]> wrote:
>>>>
>>>>>
>>>>>
>>>>> On 07/08/18 18:07, Arunkumar Krishnamoorthy wrote:
>>>>>
>>>>>> So my JENA_CP
>>>>>> is JENA_CP='/home/ak/Downloads/apache-jena-3.8.0/lib/*:/home/ak
>>>>>> /Documents'.
>>>>>>
>>>>>
>>>>> Does the file
>>>>>
>>>>> /home/ak/Documents/samplejena/LastModified.class
>>>>>
>>>>> exist?
>>>>>
>>>>>
>>>>>
>>>>>> /home/ak/Documents location has the classfile/jar of the code
>>>>>>
>>>>>> But still when i run this command,
>>>>>>
>>>>>> /home/ak/Downloads/apache-jena-3.8.0/bin/arq --data
>>>>>> /home/ak/Desktop/dataset.rdf --query /home/ak/Desktop/query.rq
>>>>>>
>>>>>> I am getting the below error,
>>>>>>
>>>>>> ak@akrish12:~$ /home/ak/Downloads/apache-jena-3.8.0/bin/arq --data
>>>>>> /home/ak/Desktop/dataset.rdf --query /home/ak/Desktop/query.rq
>>>>>> 12:41:35 WARN  ClsLoader            :: Class not found:
>>>>>> samplejena.LastModified
>>>>>> 12:41:35 WARN  exec                 :: URI
>>>>>> <java:samplejena.LastModified>
>>>>>> has no registered function factory
>>>>>> -------------
>>>>>> | title | r |
>>>>>> =============
>>>>>> -------------
>>>>>>
>>>>>>
>>>>>> Regards,
>>>>>> Arun
>>>>>>
>>>>>> On Tue, Aug 7, 2018 at 12:20 PM, Andy Seaborne <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>> The list doesn't accept attachments.
>>>>>>>
>>>>>>> JENA_CP="$JENA_HOME"'/home/ak/Documents'
>>>>>>>>>
>>>>>>>>
>>>>>>> This needs to be a valid java classpath.
>>>>>>>
>>>>>>> $JENA_HOME is directory of the Jena installation.
>>>>>>>
>>>>>>> In the original it says:
>>>>>>>
>>>>>>> JENA_CP="$JENA_HOME"'/lib/*'
>>>>>>>
>>>>>>> the .../lib/* (NB single quotes - no * expansion) puts all the
>>>>>>> jars in
>>>>>>> that direct on the classpath.
>>>>>>>
>>>>>>> For you:
>>>>>>>
>>>>>>> JENA_CP='/home/ak/Downloads/apache-jena-3.8.0/lib/*'
>>>>>>>
>>>>>>> You need to add the package/classfile tree for you code.
>>>>>>>
>>>>>>> As you have: java:samplejena
>>>>>>>
>>>>>>> Suppoose /DIR is the top of that directory tree so "samplejena" 
>>>>>>> is one
>>>>>>> directory within /DIR.
>>>>>>>
>>>>>>> You then want:
>>>>>>>
>>>>>>> JENA_CP='/home/afs/jlib/apache-jena/lib/*:/DIR'
>>>>>>>
>>>>>>> : is the classpath separator.
>>>>>>>
>>>>>>>       Andy
>>>>>>>
>>>>>>> On 07/08/18 16:25, Arunkumar Krishnamoorthy wrote:
>>>>>>>
>>>>>>> Hello,
>>>>>>>>
>>>>>>>> I have attached the file with the change, i am getting Could
>>>>>>>> not find
>>>>>>>> or
>>>>>>>> load main class arq.arq
>>>>>>>>
>>>>>>>> My classpath location is /home/ak/Documents. Please let me know
>>>>>>>> whether
>>>>>>>> my change is correct.
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>> Arun
>>>>>>>>
>>>>>>>>
>>>>>>>> On Tue, Aug 7, 2018 at 11:11 AM, Andy Seaborne <[email protected]
>>>>>>>> <mailto:
>>>>>>>> [email protected]>> wrote:
>>>>>>>>
>>>>>>>>       Hi - Please send email to the jena users mailing list.
>>>>>>>>
>>>>>>>>       (It is correct if it works!)
>>>>>>>>
>>>>>>>>            Andy
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>
>>>
>>


Reply via email to