我需要写一个程序,以便使用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();,但我不能解决它,有人能帮助他们吗?
发布于 2012-07-06 16:09:55
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上)。
https://stackoverflow.com/questions/11353504
复制相似问题