0

我有以下java代码。我正在使用 XQJ 使用 XQJ api 编写一个测试 XQuery 程序。我已经下载了 JSR-000225 XQuery API for Java 1.0 Final Release,并将 xqjapi.jar 添加到我的类路径中。java代码简单如下

import javax.xml.xquery.XQConnection;
import javax.xml.xquery.XQDataSource;
import javax.xml.xquery.XQException;

public class SaxonExtJavaObject {

public static void main(String[] args) throws XQException, InstantiationException,       IllegalAccessException, ClassNotFoundException {

  XQDataSource xqds = (XQDataSource)
          Class.forName("com.jsr225.xqj").newInstance();

       // obtain a connection
       XQConnection con = xqds.getConnection("usr", "passwd");
       System.out.println("connected");
}
}

我的问题是我有以下异常

   Exception in thread "main" java.lang.ClassNotFoundException: com.jsr225.xqj
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

请有人帮我解决这个问题。

4

1 回答 1

3

您仍然需要一个产品(即 XQuery 处理器)作为实际数据源;您可以在http://xqj.net/上找到支持的实现列表

与 JDBC 非常相似,尽管有一个接口定义了数据库允许的操作,但您需要一个执行所选任务的实现(例如 MySQL、PostgreSQL 或 DB2)。

有用Java 编写的 XML 数据库的 XQJ 实现:BaseXeXist
以及ZorbaMarkLogic(商业)和Sedna(用 C/C++ 编写)的接口。

在您的示例中,您引用了 Saxon,有关使用 Saxon 和 XQJ 的信息可以在Saxon 的文档中找到

我希望这有助于澄清一些事情。

迈克尔

于 2012-07-06T08:20:39.667 回答