【问题标题】:DataSource declaration in Saxon XQJ APISaxon XQJ API 中的 DataSource 声明
【发布时间】:2012-07-05 22:42:26
【问题描述】:

我需要编写一个程序来使用saxon 在java 中实现XQuery。我是 XQuery 和撒克逊的新手。我已经下载了saxon-xqj-8.9.0.4.jar和 saxon9.jar 并将这两个文件添加到类路径中。以下是我的简单测试代码

 import net.sf.saxon.javax.xml.xquery.XQConnection;
 import net.sf.saxon.javax.xml.xquery.XQException;
 import net.sf.saxon.xqj.SaxonXQDataSource;

 public class SaxonExtJavaObject {
     public String f() {

    return "Some string";
    }

   public static void main(String[] args) throws XQException {

        SaxonXQDataSource xqds = new SaxonXQDataSource();
        XQConnection xqc = xqds.getConnection();
        System.out.println("connected");
}

}

问题是它给出了以下异常

   Exception in thread "main" java.lang.NoSuchMethodError: net.sf.saxon.Configuration.makeSchemaAwareConfiguration(Ljava/lang/ClassLoader;Ljava/lang/String;)Lnet/sf/saxon/Configuration;
at net.sf.saxon.xqj.SaxonXQDataSource.<init>(SaxonXQDataSource.java:34)
at SaxonExtJavaObject.main(SaxonExtJavaObject.java:17)

我认为问题是因为SaxonXQDataSource xqds = new SaxonXQDataSource(); 但我无法解决它,请有人帮助他们。

【问题讨论】:

    标签: xslt xquery saxon


    【解决方案1】:

    JAR 文件 saxon-xqj-8.9.0.4.jar 是 Saxon 8.9.0.4 的一部分,而您的 saxon9.jar 必须来自 9.0 或更高版本。您不能混合来自不同 Saxon 版本的不同 JAR 文件。

    在某个阶段,我忘记了 XQJ 代码何时被合并到 Saxon JAR 主文件中,因此您不再需要单独的 JAR。它最初是独立的原因是它具有主 JAR 文件中不存在的依赖项(在 JDK 上)。

    【讨论】:

    • 我从类路径中删除了 saxon-xqj-8.9.0.4.jar ,所以现在我只有 saxon9.jar 。但它不承认任何进口。请问有什么想法吗?
    猜你喜欢
    • 2021-06-12
    • 2011-08-29
    • 2020-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多