代理配置
您可以使用HttpOp
访问/更改HttpClient
Jena 使用的内容,然后配置然后分配一个已配置为 Proxy的客户端。请注意,HttpClient
Jena 使用的版本不是最新的,因此如果您遵循教程(例如我链接的教程),则需要稍微调整以创建客户端。
jena-arq-2.12.0
使用fuseki-1.1.0
取决于httpclient-4.2.6
. 以下代码将配置 ARQ 以使用代理:
final HttpHost proxy = new HttpHost("someproxy",8080);
final DefaultHttpClient httpclient = new DefaultHttpClient();
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,proxy);
HttpOp.setDefaultHttpClient(httpclient);
Fuseki 配置
我似乎找不到在 fuseki 中配置它的文档化方法,所以我自己的个人技巧是:
- 创建一个类,其
static
初始化方法设置所有代理配置。
package my.fully.qualified;
public class ConfigurationClass {
static {
// Proxy config code
final HttpHost proxy = new HttpHost("someproxy",8080);
final DefaultHttpClient httpclient = new DefaultHttpClient();
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,proxy);
HttpOp.setDefaultHttpClient(httpclient);
}
}
- 执行 fuseki 时,将包含该类的 jar 放在类路径中。这将需要调整 fuseki 脚本以将我的 jar 添加到类路径中。
$ java -classpath '*' org.apache.jena.fuseki.FusekiCmd
- 编辑我的fuseki 配置以包含表单的三元组
[] ja:loadClass "my.fully.qualified.ConfigurationClass" .
这将导致 fuseki 为我的特殊类执行初始化方法,然后更改HttpClient
Jena/ARQ 内部使用的默认值。这与 Jena 在内部用于初始化 TDB 的技术相同[] ja:loadClass "com.hp.hpl.jena.tdb.TDB" .