MarkLogic使用JavaAPI

时间:2017-03-27 03:02:51

标签: java marklogic

我一直在尝试使用与本页中提到的相同示例的普通Java API。我不得不下载各种JAR:

  1. java-client-api-3.0.7.jar
  2. SLF4J-API-1.7.25.jar
  3. com.fasterxml.jackson.databind.jar
  4. 杰克逊核-2.2.0-rc1.jar
  5. Apache的httpcomponents-httpclient.jar
  6. javax.ws.rs.jar
  7. 它仍然给我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吗?

1 个答案:

答案 0 :(得分:0)

错误消息中显示您缺少 httpcore-4.1.jar

但是,您可能也会遗漏许多其他依赖项。

如果您要维护自己的依赖项集并手动构建类路径,那么您应该download the Java API zip,其中包含/ lib目录中的所有必需依赖项。

但是,如果您使用构建/依赖关系管理工具(如Gradle或Maven)会更容易。如果您将Java API作为依赖项,它将下载所有依赖项,并将使用类路径上的必要库来编译您的应用程序。它使升级更容易,便于自动化,并且是支持手动收集和组织依赖关系的最佳实践。