我一直在尝试使用与本页中提到的相同示例的普通Java API。我不得不下载各种JAR:
它仍然给我NoClassDefFoundError
线程“main”中的异常java.lang.NoClassDefFoundError:com.marklogic.client.DatabaseClientFactory.newClientImpl(DatabaseClientFactory.java:322)中的org / apache / http / params / HttpParams
我的代码:
import com.marklogic.client.DatabaseClient;
import com.marklogic.client.DatabaseClientFactory;
import com.marklogic.client.document.*;
import com.marklogic.client.io.*;
public class JavaML {
public static void main(String args[]) {
System.out.println("Here");
DatabaseClient client =
DatabaseClientFactory.newClient(
"localhost", 8000,"admin", "######",
DatabaseClientFactory.Authentication.DIGEST);
JSONDocumentManager docMgr = client.newJSONDocumentManager();
docMgr.write("/afternoon-drink",
new StringHandle("{name: \"Iced Mocha\", size: \"Grandé\", tasty: true}"));
String doc = docMgr.read("/afternoon-drink", new StringHandle()).get();
//System.out.println(doc);
}
}
执行命令
javac -cp .;%CLASSES% JavaML.java
java -cp .;%CLASSES% JavaML
%CLASSES% - 上述所有罐子的路径。
请帮忙 - 我错过了什么吗?或者我必须下载所有这些JAR吗?
答案 0 :(得分:0)
错误消息中显示您缺少 httpcore-4.1.jar 。
但是,您可能也会遗漏许多其他依赖项。
如果您要维护自己的依赖项集并手动构建类路径,那么您应该download the Java API zip,其中包含/ lib目录中的所有必需依赖项。
但是,如果您使用构建/依赖关系管理工具(如Gradle或Maven)会更容易。如果您将Java API作为依赖项,它将下载所有依赖项,并将使用类路径上的必要库来编译您的应用程序。它使升级更容易,便于自动化,并且是支持手动收集和组织依赖关系的最佳实践。