1

を使用してJavaでXQueryを実装するには、プログラムを作成する必要がありsaxonます。XQueryとsaxonは初めてです。saxon-xqj-8.9.0.4.jarsaxon9.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();解決できません。誰か助けてくれませんか。

4

1 に答える 1

2

JARファイルsaxon-xqj-8.9.0.4.jarはSaxon8.9.0.4の一部ですが、saxon9.jarはリリース9.0以降のものである必要があります。異なるSaxonリリースの異なるJARファイルを混在させることはできません。

ある段階で、XQJコードがメインのSaxon JARファイルに結合されたときを忘れたため、別のJARは不要になりました。元々分離されていた理由は、メインのJARファイルに存在しない依存関係(JDK上)があったためです。

于 2012-07-06T08:09:54.817 に答える