我们的应用程序 Build 在Jena和Fuseki之上 . 该应用程序使用联合SPARQL查询访问公共域中的SPARQL endpoints .
应用程序的某些网络仅允许通过HTTP代理的HTTP请求作为其网络策略的一部分 .
如何配置fuseki,以便当它在SPARQL子查询中将HTTP请求作为SERVICE块的一部分时,它使用正确的http_proxy?
在Linux上,我尝试使用本地环境变量
export http_proxy=http://myproxy.notadomain
在运行fuseki-server进程的shell中,但Fuseki似乎不尊重这个环境变量 .
我在Fuseki文档中找不到有关如何处理这些信息的信息 .
我想要一种方法来直接运行fuseki-server作为配置代理的Linux进程,可以在配置文件中,也可以作为运行时参数 .
感谢所有的建议 .
2 回答
Fuseki是一个Java应用程序 . 我通常做的是导出一个包含所有自定义的JAVA_OPTIONS变量,例如:
Proxy Configuration
您可以使用HttpOp访问/更改Jena使用的
HttpClient
,然后配置然后分配一个已经Configured for Proxy的客户端 . 请注意,Jena使用的HttpClient
版本并不是最新版本,因此如果您正在学习教程(例如我链接的教程),您需要稍微调整才能创建客户端 .jena-arq-2.12.0
使用的jena-arq-2.12.0
取决于httpclient-4.2.6
. 以下代码将ARQ配置为使用代理:Fuseki Configuration
我似乎找不到在fuseki中配置这个的文档化方法,所以我自己的个人黑客将是:
static
初始化方法设置所有代理配置 .[] ja:loadClass "my.fully.qualified.ConfigurationClass" .
这将导致fuseki执行我的特殊类的初始化方法,然后在内部更改Jena / ARQ使用的默认HttpClient
. 这与Jena内部用[] ja:loadClass "com.hp.hpl.jena.tdb.TDB" .
初始化TDB的技术相同