我试图在我的应用程序中使用exist-db,因此为了测试将其嵌入,我遵循了eXist-db webppage http://www.exist-db.org/exist/apps/doc/deployment.xml上指定的指南。
对于相关代码本身:

import org.xmldb.api.DatabaseManager;
import org.xmldb.api.base.Collection;
import org.xmldb.api.base.Database;
import org.exist.xmldb.DatabaseInstanceManager;
public class TestDB {
    public static void main(String args[]) throws Exception {
        // initialize driver
        Class cl = Class.forName("org.exist.xmldb.DatabaseImpl");
        Database database = (Database)cl.newInstance();
        database.setProperty("create-database", "true");
        DatabaseManager.registerDatabase(database);

        // try to read collection
        Collection col =
            DatabaseManager.getCollection("xmldb:exist:///db", "admin", "");
        String resources[] = col.listResources();
        System.out.println("Resources:");
        for (int i = 0; i < resources.length; i++) {
            System.out.println(resources[i]);
        }

        // shut down the database
        DatabaseInstanceManager manager = (DatabaseInstanceManager)
            col.getService("DatabaseInstanceManager", "1.0");
        manager.shutdown();
    }
}


代码本身可以在我提供的网页的底部找到。
最终,由于执行以下输出https://pastebin.com/b6Tf7K1L,导致无法执行DatabaseManager.getCollection("xmldb:exist:///db", "admin", "")

我选择的VM选项为-Djava.endorsed.dirs=lib/endorsed -Dexist.initdb=true -Dexist.home=.(使用2017.2.7 IntelliJ IDEA和Java 8)。

这是我第一次同时使用exist-db数据库和xml数据库,并且无法弄清解决方案。在上面提供的链接中,我遵循了指南的“在应用程序中嵌入eXist”部分。

最佳答案

因此,从您的输出中,您会从类路径中丢失一些jar文件。避免此类情况的最佳方法可能是将Maven用作您的构建系统,并使用我们在github.com/exist-db/mvn-repo上发布的Maven工件。

如果要使用更方便的ExistEmbeddedServer类,则可能要先依赖存在核心-可能存在测试包。

抱歉,没有提供详细信息,最近几天我只带了手机。

ps。您还可以从此处的eXist书-https://github.com/exist-book/book-code中找到在自己的eXist-db项目中使用Maven的代码示例。这是针对当时出版的eXist 2.1的。我还在这里-https://github.com/eXist-book/book-code/tree/eXist-4.0.0更新了eXist-db 4.0.0的代码。

10-07 20:55