You might want to check if URLConnection really sends the HTTP headers
you think it does. I had issues with it adding some headers by
default.

On Mon, Jan 14, 2019 at 4:53 PM Kevin Dreßler <[email protected]> wrote:
>
> Sorry for double posting but I might add that with this code I get the 
> following Exception:
>
> java.lang.RuntimeException: org.apache.jena.riot.RiotException: [line: 1, 
> col: 7 ] Element or attribute do not match QName production: 
> QName::=(NCName':')?NCName.
>         at 
> org.aksw.deer.enrichments.DereferencingEnrichmentOperator.queryResourceModel(DereferencingEnrichmentOperator.java:231)
>
> And when I change
>
>     ModelFactory.createDefaultModel().read(conn.getInputStream(), null)
>
> to
>
>     ModelFactory.createDefaultModel().read(conn.getInputStream(), null, 
> "TURTLE")
>
> but leave
>
>     conn.setRequestProperty("Accept", "application/rdf+xml")
>
> unchanged, it works as expected.
>
> Using curl I see that Fuseki indeed delivers TURTLE:
>
> $ curl -H "Accept: application/rdf+xml" http://localhost:32537/birch
> <http://localhost:32537/birch> <http://localhost:32537/brinellHardness> 
> "27"^^<http://www.w3.org/2001/XMLSchema#int> .
>
> I am on Jena 3.9.0.
>
> Hope thats enough information.
>
> Best,
> Kevin
>
> > On 14. Jan 2019, at 16:29, Kevin Dreßler <[email protected]> wrote:
> >
> > This is the method where I do the request and which I effectively want to 
> > test:
> >
> >  private Model queryResourceModel(Resource o) {
> >    URL url;
> >    URLConnection conn;
> >    Model result = ModelFactory.createDefaultModel();
> >    try {
> >      url = new URL(o.getURI());
> >    } catch (MalformedURLException e) {
> >      e.printStackTrace();
> >      return result;
> >    }
> >    try {
> >      conn = url.openConnection();
> >      conn.setRequestProperty("Accept", "application/rdf+xml");
> >      conn.setRequestProperty("Accept-Language", "en");
> >      return ModelFactory.createDefaultModel()
> >        .read(conn.getInputStream(), null);
> >    } catch (ConnectException e) {
> >      if (e.getMessage().contains("refused")) {
> >        throw new RuntimeException(e);
> >      }
> >    } catch (Exception e) {
> >      throw new RuntimeException(e);
> >    }
> >    return result;
> >  }
> >
> >
> >> On 14. Jan 2019, at 15:09, ajs6f <[email protected]> wrote:
> >>
> >> Please show the code you are actually using to make requests.
> >>
> >> ajs6f
> >>
> >>> On Jan 14, 2019, at 9:06 AM, Kevin Dreßler <[email protected]> wrote:
> >>>
> >>> Hello,
> >>>
> >>> for unit testing I need to mock up a HTTP server delivering RDF/XML per 
> >>> content negotiation (Accept: application/rdf+xml). For a HTTP request on 
> >>> http://myEndpoint:myPort/test with the "Accept" header set as above it 
> >>> should output DESCRIBE(http://myEndpoint:myPort/test) as RDF/XML, so 
> >>> basically I want to mimic DBpedia. Is there a way to do this with a 
> >>> minimal amount of configuration inside my tests using FUSEKI 2?
> >>> Right now I am using the following code but I get the output only as 
> >>> TURTLE.
> >>>
> >>>  String EX = "http://localhost:32537/";;
> >>>
> >>>  Model lookup = ModelFactory.createDefaultModel();
> >>>  lookup.add(lookup.createResource(EX + "birch"),
> >>>    lookup.createProperty(EX + "brinellHardness"),
> >>>    lookup.createTypedLiteral(27));
> >>>
> >>>  FusekiServer server = FusekiServer.create()
> >>>    .add("/birch", DatasetFactory.create(lookup))
> >>>    .port(32537)
> >>>    .build();
> >>>  server.start();
> >>>
> >>> Thanks in advance,
> >>> Kevin
> >>
> >
>

Reply via email to