プロが教えるわが家の防犯対策術!

JAVA・XUpdateの更新について

【質問】******************************************************************
こんにちは、いつもお世話になっております。
さっそくなのですが、現在JAVAでXMLDB(eXist)の操作を行っております。
ですが、XUpdateのところでどうしてもエラーが出てしまいます。
検索してみましたが意味合いが分からなかったので、こちらに投稿させて頂きました。
御存じの方、宜しければ教えて下さい。

【参照URL様】************************************************************
ttp://f41.aaa.livedoor.jp/~fujishin/exist/lesson3.html
(DBの接続・検索まではうまくいきました。)

【エラー内容】*************************************************************
log4j:WARN No appenders could be found for logger (org.exist.xmldb.RemoteXUpdateQueryService).
log4j:WARN Please initialize the log4j system properly.

【ソース: Sample.java】******************************************************
import org.xmldb.api.DatabaseManager;
import org.xmldb.api.base.Collection;
import org.xmldb.api.base.Database;
import org.xmldb.api.modules.XUpdateQueryService;

public class Sample {
public static void main(String[] args) {
try {
Class clazz = Class.forName("org.exist.xmldb.DatabaseImpl");
Database database = (Database) clazz.newInstance();
DatabaseManager.registerDatabase(database);

Collection col = DatabaseManager.getCollection(
"xmldb:exist://localhost:5555/exist/xmlrpc/db/test","admin", "root");

XUpdateQueryService service =
(XUpdateQueryService) col.getService("XUpdateQueryService", "1.0");
service.setCollection(col);

StringBuffer xupdate = new StringBuffer();
xupdate.append("<modifications version=\"1.0\" xmlns=\"http://www.xmldb.org/xupdate\">");
xupdate.append("<update select=\"/root/data/ken[@id='4']/comment\">今年、行く予定です。");
xupdate.append("</update>");
xupdate.append("</modifications>");

service.update(xupdate.toString());

col.close();
} catch (Exception e) {
e.printStackTrace();
}}}

【環境】****************************************************************
Vista / jdk 1.6.0_14 / exsit 1.4.0 / Eclipse 3.2.0
 

A 回答 (2件)

log4jの定義ファイルの中身が間違っているはずよ。

この回答への補足

私の場合、

C:\Program Files\eXist
C:\Program Files\eXist\tools\wrapper\conf

の下に「log4j.xml」というファイルがあるのですが、
これをいじればよいのでしょうか?
引き続き調べてみます。

補足日時:2010/09/10 22:42
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。
eXistに入っているlog4j-1.2.15.jarをそのまま使っていたのですが、
何か設定する所とかあるのでしょうか?
それとも、バージョンとかが異なるのでしょうか?
初心者ですが、私自身もう少し調べてみます。
何かご指摘があれば宜しくお願いします。

お礼日時:2010/09/09 22:02

> log4j.xml



そのとおりよ。

ぐぐるときは
「log4j 設定」
「log.xml」
とかでぐぐるといいわ
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。

なんとかエラーがなくなりました。

私の場合は、
eXistフォルダに入ってる「log4j.xml」を
eclipseのworkspase/project/binフォルダに置くことによってエラーが消えました。

参考
http://oshiete.goo.ne.jp/qa/1567158.html


【補足】
WARNはエラーではなく警告なのですね。
この警告がXMLの更新できない原因だと思い込んでいました。

どうやらXUpdateの中身が違ったようです。(バージョンによって?)

正しくは、xupdate.appendの部分を
------------------------------------------------------------------------
xupdate.append("<xupdate:modifications version=\"1.0\" xmlns:xupdate=\"http://www.xmldb.org/xupdate\">");
xupdate.append("<xupdate:update select=\"/root/data/ken[@id='4']/comment\">今年、行く予定です。</xupdate:update>");
xupdate.append("</xupdate:modifications>");
------------------------------------------------------------------------
に変更したらうまく更新されました。


お返事下さった方有難うございます。
とても良い勉強になりました。

お礼日時:2010/09/11 22:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!