【发布时间】:2020-10-16 20:46:46
【问题描述】:
我正在尝试使用 Java API 在我的数据中心服务上执行搜索。不幸的是,服务器返回Unauthorized 响应。
代码如下:
public Object doSearch() throws NoSuchAlgorithmException, KeyManagementException {
String user = *****;
String password = ******;
String db = "data-hub-FINAL";
String host = "***********.marklogicsvc.com";
int port = 8011;
SecurityContext auth = new DatabaseClientFactory.DigestAuthContext(user, password).withSSLContext(SSLContext.getDefault());
DatabaseClient client = DatabaseClientFactory.newClient(host, port, db, auth);
try {
QueryManager qm = client.newQueryManager();
StructuredQueryBuilder qb = qm.newStructuredQueryBuilder();
qm.setPageLength(100);
var query = qb.collection("listings");
return qm.search(query, new SearchHandle());
} finally {
client.release();
}
}
我怀疑我使用了错误的凭据,但是当我在 Visual Studio Code Marklogic Extension 中尝试它们时效果很好,这是我的 VS Code 设置和查询:
"marklogic.modulesDb": "data-hub-MODULES",
"marklogic.host": "*******.marklogicsvc.com",
"marklogic.password": *******,
"marklogic.username": *******,
“marklogic.ssl”:是的,
“marklogic.port”:8011
查询:
xquery version "3.0";
declare namespace cts = "http://marklogic.com/cts";
cts:search(fn:collection(("listings")), cts:and-query(()))
如果您告诉我我的 Java 代码出了什么问题,我无法连接到 DHS,我会非常高兴。
【问题讨论】:
标签: java marklogic marklogic-dhf