Which line is line 111 in DBpediaLookupClient.java?

On 11 July 2013 21:11, Luciane Monteiro <[email protected]> wrote:
> Hi!
> I'm trying to use the Lookup web service from DBpedia, but I'm finding
> difficulties because there's very few information on the web. I found a code
> example, but when I execute it, I get the errors:
>
> java.lang.NullPointerException at
> tutorial.DBpediaLookupClient.containsSearchTerms(DBpediaLookupClient.java:111)
> at tutorial.DBpediaLookupClient.endElement(DBpediaLookupClient.java:87) at
> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown
> Source) at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
> Source) at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at
> org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at
> org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at
> org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source) at
> javax.xml.parsers.SAXParser.parse(SAXParser.java:195) at
> tutorial.DBpediaLookupClient.(DBpediaLookupClient.java:56) at
> tutorial.DBpediaLookupClient.main(DBpediaLookupClient.java:126)
>
> HERE IS THE CODE:
>
> package tutorial;
>
> import java.io.IOException;
> import java.io.InputStream;
> import java.net.URLEncoder;
> import java.util.ArrayList;
> import java.util.HashMap;
> import java.util.List;
> import java.util.Map;
> import java.util.StringTokenizer;
> import javax.xml.parsers.SAXParser;
> import javax.xml.parsers.ParserConfigurationException;
> import javax.xml.parsers.SAXParserFactory;
> import org.apache.commons.httpclient.HttpClient;
> import org.apache.commons.httpclient.HttpException;
> import org.apache.commons.httpclient.HttpMethod;
> import org.apache.commons.httpclient.methods.GetMethod;
> import org.xml.sax.SAXException;
> import org.xml.sax.XMLReader;
> import org.xml.sax.helpers.DefaultHandler;
> import com.sun.org.apache.bcel.internal.classfile.Attribute;
>
> public class DBpediaLookupClient extends DefaultHandler {
>
>     /**
>      * @param args
>      */
>
>     private List<Map<String, String>> variableBindings = new
> ArrayList<Map<String, String>>();
>     private Map<String, String> tempBinding = null;
>     private String lastElementName = null;
>     private String query = "";
>
>         public DBpediaLookupClient( String query ) throws Exception {
>             this.query = query;
>             HttpClient client = new HttpClient();
>             HttpMethod method = new
> GetMethod("http://lookup.dbpedia.org/api/search.asmx/KeywordSearch?QueryClass=place&QueryString="+query);
>
>             try{
>                  client.executeMethod(method);
>                 System.out.println(method);
>
>                 InputStream ins = method.getResponseBodyAsStream();
>
>                 SAXParserFactory factory = SAXParserFactory.newInstance();
>                 javax.xml.parsers.SAXParser sax = factory.newSAXParser();
>                 sax.parse(ins, this);
>
>
>             }catch (HttpException he) {
>                 System.err.println("Http error connecting to
> lookup.dbpedia.org");
>             }catch (IOException ioe) {
>                 System.err.println("Unable to connect to
> lookup.dbpedia.org");
>             }catch (ParserConfigurationException e) {
>                 System.out.println("O parser não foi configurado
> corretamente.");
>                 e.printStackTrace();
>             }catch (SAXException e) {
>                 System.out.println("Problema ao fazer o parse do arquivo.");
>                 e.printStackTrace();
>             }
>
>                 method.releaseConnection();
>             }
>
>
>         public void startElement(String uri, String localName, String qName,
> Attribute attributes) throws SAXException {
>             if (qName.equalsIgnoreCase("result")) {
>               tempBinding = new HashMap<String, String>();
>             }
>             lastElementName = qName;
>           }
>
>
>
>           public void endElement(String uri, String localName, String qName)
> throws SAXException {
>             if (qName.equalsIgnoreCase("result")) {
>                 System.out.println("Qname:" + qName);
>               if (!variableBindings.contains(tempBinding) &&
> containsSearchTerms(tempBinding))
>                 variableBindings.add(tempBinding);
>             }
>           }
>
>
>
>           public void characters(char[] ch, int start, int length) throws
> SAXException {
>             String s = new String(ch, start, length).trim();
>
>             if (s.length() > 0) {
>               if ("Description".equals(lastElementName))
> tempBinding.put("Description", s);
>               if ("URI".equals(lastElementName)) tempBinding.put("URI", s);
>               if ("Label".equals(lastElementName)) tempBinding.put("Label",
> s);
>             }
>           }
>
>
>           public List<Map<String, String>> variableBindings() {
>             return variableBindings;
>           }
>
>
>
>           private boolean containsSearchTerms(Map<String, String> bindings)
> {
>             StringBuilder sb = new StringBuilder();
>
>             for (String value : bindings.values()){
>                 sb.append(value);  // do not need white space
>             }
>             String text = sb.toString().toLowerCase();
>             StringTokenizer st = new StringTokenizer(this.query);
>             while (st.hasMoreTokens()) {
>               if (text.indexOf(st.nextToken().toLowerCase()) == -1) {
>                 return false;
>               }
>             }
>             return true;
>           }
>
>
>
>           public static void main(String[] args) {
>               try {
>                 DBpediaLookupClient client = new
> DBpediaLookupClient("berlin");
>
>             } catch (Exception e) {
>                 e.printStackTrace();
>             }
>           }
>
> }
>
>
> If anybody has any idea of what's wrong please help me.
> Or if any of you has any other code example it will help a lot
> too.
>
> Thank you!
>
>
>
>
> ------------------------------------------------------------------------------
> See everything from the browser to the database with AppDynamics
> Get end-to-end visibility with application monitoring from AppDynamics
> Isolate bottlenecks and diagnose root cause in seconds.
> Start your free trial of AppDynamics Pro today!
> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
> _______________________________________________
> Dbpedia-discussion mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/dbpedia-discussion
>

------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
Dbpedia-discussion mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dbpedia-discussion

Reply via email to