You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Martynas Jusevičius <ma...@atomgraph.com> on 2017/12/03 18:27:27 UTC
Overriding JsonLdOptions / disabling HTTP call
Hi,
I have noticed that after I upgraded to Jena 3.0.1 some time ago, JSON-LD
writer stopped working. This is due to
Exception occurred in target VM:
org/apache/http/impl/client/SystemDefaultHttpClient
java.lang.NoClassDefFoundError:
org/apache/http/impl/client/SystemDefaultHttpClient
at com.github.jsonldjava.core.JsonLdOptions.<init>(JsonLdOptions.java:52)
in JsonLDWriter.serialize().
I had replaced all Jena's Apache Client usages with Jersey client, so this
was an unpleasant surprise.
Why would a writer make HTTP calls? I guess it attempts to load some
@context or something, but this does not make sense when writing?
I know jsonld-java is a 3rd party library, so I guess my options to disable
the HTTP call are limited? Would a newer version make it possible?
Martynas
Re: Overriding JsonLdOptions / disabling HTTP call
Posted by Andy Seaborne <an...@apache.org>.
> So I guess it's really a classpath issue,
JsonLdOptions does not call SystemDefaultHttpClient (0.11.1).
Maybe it did at the version for Jena 3.0.1.
Andy
On 03/12/17 19:46, Martynas Jusevičius wrote:
> Follows below.
>
> Forgot to mention one important thing :) I'm excluding Apache HTTP Client
> from Jena:
>
> <dependency>
> <groupId>org.apache.jena</groupId>
> <artifactId>jena-arq</artifactId>
> <version>3.0.1</version>
> <!-- excluding HTTP Client as we are using Jersey Client
> instead -->
> <exclusions>
> <exclusion>
> <groupId>org.apache.httpcomponents</groupId>
> <artifactId>httpclient</artifactId>
> </exclusion>
> <exclusion>
> <groupId>org.apache.httpcomponents</groupId>
> <artifactId>httpclient-cache</artifactId>
> </exclusion>
> </exclusions>
> </dependency>
>
> So I guess it's really a classpath issue, not specific to Jena: Jersey
> client wraps a different AHC version than Jena/jsonld-java does.
>
> But if JsonLdOptions would not call it, I think it wouldn't be a problem?
>
> The stacktrace:
>
> Exception occurred in target VM:
> org/apache/http/impl/client/SystemDefaultHttpClient
> java.lang.NoClassDefFoundError:
> org/apache/http/impl/client/SystemDefaultHttpClient
> at com.github.jsonldjava.core.JsonLdOptions.<init>(JsonLdOptions.java:52)
> at org.apache.jena.riot.out.JsonLDWriter.serialize(JsonLDWriter.java:87)
> at org.apache.jena.riot.out.JsonLDWriter.write(JsonLDWriter.java:67)
> at org.apache.jena.riot.out.JsonLDWriter.write(JsonLDWriter.java:77)
> at org.apache.jena.riot.system.RiotLib$WriterAdapter.write(RiotLib.java:333)
> at org.apache.jena.riot.adapters.RDFWriterRIOT.write(RDFWriterRIOT.java:94)
> at org.apache.jena.rdf.model.impl.ModelCom.write(ModelCom.java:355)
> at com.atomgraph.core.io.ModelProvider.write(ModelProvider.java:153)
> at
> com.atomgraph.platform.server.io.SkolemizingModelProvider.write(SkolemizingModelProvider.java:85)
> at
> com.atomgraph.server.io.BasedModelProvider.writeTo(BasedModelProvider.java:83)
> at
> com.atomgraph.server.io.BasedModelProvider.writeTo(BasedModelProvider.java:43)
> at
> com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:302)
> at
> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1510)
> at
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419)
> at
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409)
> at
> com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409)
> at
> com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558)
> at
> com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:733)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94)
> at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:616)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
> at
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)
> at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1132)
> at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
> at
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1539)
> at
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1495)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.ClassNotFoundException:
> org.apache.http.impl.client.SystemDefaultHttpClient
> at
> org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
> at
> org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)
> ... 40 more
>
>
> On Sun, Dec 3, 2017 at 7:40 PM, ajs6f <aj...@apache.org> wrote:
>
>> Can you give a complete stack trace?
>>
>> ajs6f
>>
>>> On Dec 3, 2017, at 1:27 PM, Martynas Jusevičius <ma...@atomgraph.com>
>> wrote:
>>>
>>> Hi,
>>>
>>> I have noticed that after I upgraded to Jena 3.0.1 some time ago, JSON-LD
>>> writer stopped working. This is due to
>>>
>>> Exception occurred in target VM:
>>> org/apache/http/impl/client/SystemDefaultHttpClient
>>> java.lang.NoClassDefFoundError:
>>> org/apache/http/impl/client/SystemDefaultHttpClient
>>> at com.github.jsonldjava.core.JsonLdOptions.<init>(
>> JsonLdOptions.java:52)
>>>
>>> in JsonLDWriter.serialize().
>>>
>>> I had replaced all Jena's Apache Client usages with Jersey client, so
>> this
>>> was an unpleasant surprise.
>>>
>>> Why would a writer make HTTP calls? I guess it attempts to load some
>>> @context or something, but this does not make sense when writing?
>>>
>>> I know jsonld-java is a 3rd party library, so I guess my options to
>> disable
>>> the HTTP call are limited? Would a newer version make it possible?
>>>
>>>
>>> Martynas
>>
>>
>
Re: Overriding JsonLdOptions / disabling HTTP call
Posted by Martynas Jusevičius <ma...@atomgraph.com>.
Follows below.
Forgot to mention one important thing :) I'm excluding Apache HTTP Client
from Jena:
<dependency>
<groupId>org.apache.jena</groupId>
<artifactId>jena-arq</artifactId>
<version>3.0.1</version>
<!-- excluding HTTP Client as we are using Jersey Client
instead -->
<exclusions>
<exclusion>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient-cache</artifactId>
</exclusion>
</exclusions>
</dependency>
So I guess it's really a classpath issue, not specific to Jena: Jersey
client wraps a different AHC version than Jena/jsonld-java does.
But if JsonLdOptions would not call it, I think it wouldn't be a problem?
The stacktrace:
Exception occurred in target VM:
org/apache/http/impl/client/SystemDefaultHttpClient
java.lang.NoClassDefFoundError:
org/apache/http/impl/client/SystemDefaultHttpClient
at com.github.jsonldjava.core.JsonLdOptions.<init>(JsonLdOptions.java:52)
at org.apache.jena.riot.out.JsonLDWriter.serialize(JsonLDWriter.java:87)
at org.apache.jena.riot.out.JsonLDWriter.write(JsonLDWriter.java:67)
at org.apache.jena.riot.out.JsonLDWriter.write(JsonLDWriter.java:77)
at org.apache.jena.riot.system.RiotLib$WriterAdapter.write(RiotLib.java:333)
at org.apache.jena.riot.adapters.RDFWriterRIOT.write(RDFWriterRIOT.java:94)
at org.apache.jena.rdf.model.impl.ModelCom.write(ModelCom.java:355)
at com.atomgraph.core.io.ModelProvider.write(ModelProvider.java:153)
at
com.atomgraph.platform.server.io.SkolemizingModelProvider.write(SkolemizingModelProvider.java:85)
at
com.atomgraph.server.io.BasedModelProvider.writeTo(BasedModelProvider.java:83)
at
com.atomgraph.server.io.BasedModelProvider.writeTo(BasedModelProvider.java:43)
at
com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:302)
at
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1510)
at
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419)
at
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409)
at
com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409)
at
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558)
at
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:733)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:616)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1132)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1539)
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1495)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException:
org.apache.http.impl.client.SystemDefaultHttpClient
at
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
at
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)
... 40 more
On Sun, Dec 3, 2017 at 7:40 PM, ajs6f <aj...@apache.org> wrote:
> Can you give a complete stack trace?
>
> ajs6f
>
> > On Dec 3, 2017, at 1:27 PM, Martynas Jusevičius <ma...@atomgraph.com>
> wrote:
> >
> > Hi,
> >
> > I have noticed that after I upgraded to Jena 3.0.1 some time ago, JSON-LD
> > writer stopped working. This is due to
> >
> > Exception occurred in target VM:
> > org/apache/http/impl/client/SystemDefaultHttpClient
> > java.lang.NoClassDefFoundError:
> > org/apache/http/impl/client/SystemDefaultHttpClient
> > at com.github.jsonldjava.core.JsonLdOptions.<init>(
> JsonLdOptions.java:52)
> >
> > in JsonLDWriter.serialize().
> >
> > I had replaced all Jena's Apache Client usages with Jersey client, so
> this
> > was an unpleasant surprise.
> >
> > Why would a writer make HTTP calls? I guess it attempts to load some
> > @context or something, but this does not make sense when writing?
> >
> > I know jsonld-java is a 3rd party library, so I guess my options to
> disable
> > the HTTP call are limited? Would a newer version make it possible?
> >
> >
> > Martynas
>
>
Re: Overriding JsonLdOptions / disabling HTTP call
Posted by ajs6f <aj...@apache.org>.
Can you give a complete stack trace?
ajs6f
> On Dec 3, 2017, at 1:27 PM, Martynas Jusevičius <ma...@atomgraph.com> wrote:
>
> Hi,
>
> I have noticed that after I upgraded to Jena 3.0.1 some time ago, JSON-LD
> writer stopped working. This is due to
>
> Exception occurred in target VM:
> org/apache/http/impl/client/SystemDefaultHttpClient
> java.lang.NoClassDefFoundError:
> org/apache/http/impl/client/SystemDefaultHttpClient
> at com.github.jsonldjava.core.JsonLdOptions.<init>(JsonLdOptions.java:52)
>
> in JsonLDWriter.serialize().
>
> I had replaced all Jena's Apache Client usages with Jersey client, so this
> was an unpleasant surprise.
>
> Why would a writer make HTTP calls? I guess it attempts to load some
> @context or something, but this does not make sense when writing?
>
> I know jsonld-java is a 3rd party library, so I guess my options to disable
> the HTTP call are limited? Would a newer version make it possible?
>
>
> Martynas