- PR -

jdk1.4でXindiceのXUpdate

投稿者投稿内容
会議室デビュー日: 2003/06/24
投稿数: 3
投稿日時: 2003-07-03 21:55
jdk1.4.xでXindiceのXUpdateがうまくいった方いますか?
下の方のスレッドにもあります通り、今のところうまくいった方からの投稿はありません。
(当該バージョンでまくいかなかった、あるいは、下位バージョンでうまくいった、といった投稿はありますが。)
果たして、本当に動くのでしょうか?
私もうまくいきません。かなり、いろいろなことを試してみたのですが・・・。^^;
おくちん
会議室デビュー日: 2003/08/29
投稿数: 11
投稿日時: 2003-09-08 14:22
最近jdk1.4.1_01でXindiceのXUpdateに成功しました。

jdk1.3では成功していたのですが、1.3では更新や検索のときに日本語を使うことができないので、どうしても1.4で成功したかったのでいろいろと調べやっと成功しました。
はじめはQuery Processing Errorが出ていて困っていました。どうもjdk1.4.1でXindiceのXUpdateを実行するためにはいろいろとする必要があるようです。
1)まず
http://www.atmartkit.co.jp/fxml/tanpatsu/18xindice/xindice09.html
に書かれている、1.4を使うときの実行時にコマンドオプションを付けることと、startup.batにオプションを追加する。
2)
%XINDICE_HOME%\java\libにあるxerces-1.4.3.jarをxerces-1.4.4に変更する。
3)
http://marc.theaimsgroup.com/?l=xindice-users&m=105601442003375&w=2
に書かれているように
%XINDICE_HOME%\java\src\org\apache\xindice\core\xupdate\XObjectImpl.java
のファイルの105行目を
 return (NodeList) _xobj.nodeset();
 を
 return (NodeList) _xobj.nodelist();
に変更する。
最後にXindiceのホームディレクトリにある'build.bat'を実行する。

私も1)のほうの変更は行っていたのですが、いっこうに実行できなっかたのですが、2)と3)を行うことにより現在は順調にXUpdateは動いています。

説明不足かもしれませんが、お役に立てると幸いです。

環境は
win2000
Apache Tomcat 4.0
jdk1.4.1_01
xindice1.0
です。
なゆ♪
会議室デビュー日: 2003/11/25
投稿数: 9
投稿日時: 2003-11-25 16:20
初めて投稿します。
何か不適切な点がございましたらご指摘いただけると幸いです。

私もおくちんさんと同じ環境でXindiceを動かしています。
XUpdateでデータを追加していきたいのですが、
やはりQuery Processing Errorが出てしまって困っています。
XUpdateの構文が悪いのかなと思っていろいろ調べていたら
このスレッドに辿りつきました。

そこで、おくちんさんが書かれているような変更をしてみたのですが、
相変わらずQuery Processing Errorが。。。
変更の方法が悪かったのかもしれません。
おそらくstartup.batの変更方法が悪かったんだろうと思います。
具体的にどう変更すればいいのかがわかりません。。
どなたか具体的な変更方法を教えていただけませんでしょうか。
お手数かとは思いますが、よろしくおねがいします。
いたち
常連さん
会議室デビュー日: 2003/04/25
投稿数: 27
投稿日時: 2003-11-25 16:46
はじめまして。

詳細は覚えていませんが、手探りでイロイロやってJDK1.4で動いた(もちろん日本語利用)記憶があります。
お役に立てないかもしれませんが、もう少し情報をいただけないでしょうか?

とりあえず、なゆさんが怪しいと思っているstartup.batの内容と、実行したXUpdateが見てみたいです。
なゆ♪
会議室デビュー日: 2003/11/25
投稿数: 9
投稿日時: 2003-11-25 22:52
いたちさん
お返事ありがとうございます。

私は現在卒論のシステムとしてXMLクローラを作っていまして、
アクセス先のURLをXMLとして保持しXindiceに入れています。
そこで、クローラを実行した際に新たに見つかったURLを
Xindiceに格納されているURLリストのXMLに追加する処理をしたいと考えています。
その際にXUpdateを利用しようと思っていました。

実行するXUpdateは以下のとおりです。
コード:
String xupdate = "<xu:modifications version=\"1.0\"" +
                 "    xmlns:xu=\"http://www.xmldb.org/xupdate\">" +
                 "   <xu:append select=\"/LIST\" child=\"last()\">" +
                 "     <URL no=\"" + no + "\">" + list + "</URL>" +
                 "   </xu:append>" +
                 "</xu:modifications>";



作成したいXMLの内容は以下のとおりです。
コード:
<LIST>
  <URL no="1">http://***</URL>
  <URL no="2">http://***</URL>
  <URL no="○">http://****</URL>
</LIST>


ここで属性の"no"は何個目のURLか、またXUpdate4行目の"list"は登録するURLです。
どちらもString型になっています。


このスレッドを見ながら直したstartup.batの箇所は、50行目辺りの
  %JAVACMD% -Xms16m -Xmx128m -Djava.endorsed.dirs=%XINDICE_HOME%\java\lib\
の部分を、「Xindice:無料で使えるXMLデータベース(4)」の実行時のパスのように、
  %JAVACMD% -Xms16m -Xmx128m -Djava.endorsed.dirs=%XINDICE_HOME%\java\lib\endorsed
と書き加えた程度です。


説明不足な点があるかもしれませんがアドバイスよろしくお願いします
なゆ♪
会議室デビュー日: 2003/11/25
投稿数: 9
投稿日時: 2003-11-27 14:02
なんかいろいろといじっていたら、
Query Processing Error出なくなりました。
なぜか %JAVA_HOME% が C:\Java\bin になっていたために
build.bat が失敗していたのが原因のようです
共有しているパソコンなので、誰かが変えたのかもしれません。
設定を C:\Java に変えたらこのエラーは出なくなりました
ということで、startup.batの修正方法は正しかったようですね。

ところが今度は XML:DB Exception occured 1 というエラー。。。
これは
コード:

catch (XMLDBException e) {
 System.err.println("XML:DB Exception occured " + e.errorCode);
}


で出力しているエラーなので、他の問題が出てきたようです
まぁとりあえず一歩進んだので今度はこのエラーに取り組んでいきます。

ありがとうございました。


***修正***************************************************
 実行時に -Djava.endorsed.dirs=・・・ のオプションを
付け忘れてただけみたいでした(冷汗)

[ メッセージ編集済み 編集者: なゆ♪ 編集日時 2003-11-27 14:13 ]
なゆ♪
会議室デビュー日: 2003/11/25
投稿数: 9
投稿日時: 2003-11-30 20:03
XUpdateできるようになったと思ったら、
今度は別のエラーが出るようになってしまいました
エラーの内容は「Query Compilation Error」です。
XUpdateのコマンドそのものがおかしいということでしょうね。。。
そこでいろいろいじってみたのですがうまくいきません。。。
そこでどこがおかしいのかどなたかアドバイスお願いしますm(_ _)m

【更新したいXMLの内容】
コード:
<LIST>
  <URL no="1">http://***</URL>
  <URL no="2">http://***</URL>
  <URL no="○">http://****</URL>  ←を追加したい
</LIST>



【XUpdateコマンド】
コード:
String no = "○";
String list = "http://****";
String xupdate = "<xu:modifications version=\"1.0\"" +
                 " xmlns:xu=\"http://www.xmldb.org/xupdate\">" +
                 "  <xu:append select=\"/LIST\" child=\"last()\">" +
                 "    <URL no=\"" + no + "\">" + list + "</URL>" +
                 "  </xu:append>" +
                 "</xu:modifications>";



初歩的な質問で申し訳ありませんがよろしくお願いします
おくちん
会議室デビュー日: 2003/08/29
投稿数: 11
投稿日時: 2003-12-02 14:30
はじめましておくちんです。

XUpdateコマンドを見ていて思ったのですが、
<LIST>以下に追加するなら
" <xu:append select="/LIST" child="last()">"
の/LISTは /LIST/ではないのでしょうか?

間違っていたらすいません。

スキルアップ/キャリアアップ(JOB@IT)