วันพุธที่ 28 เมษายน พ.ศ. 2553

HelloWorld (JXTA)

เอาตัวอย่าง HelloWorld ของ JXTA Tutorial มาศึกษา

ผลการทำงาน ที่คาดหวังน่าจะเป็น

Intended output
Starting JXTA
JXTA Started
Waiting for a rendezvous connection
Connected : true
Stopping JXTA

แต่ดันมาเจอ Output เนื่องจากเกิด Exception
28 เม.ย. 2553 11:02:59 net.jxta.platform.NetworkManager configure
INFO: Loading existing configuration. mode = ADHOC
28 เม.ย. 2553 11:02:59 net.jxta.platform.NetworkManager startNetwork
INFO: Starting JXTA Network! MODE = ADHOC, HOME = file:/E:/java/nb/jxtaTest/.cache/HelloWorld/
28 เม.ย. 2553 11:02:59 net.jxta.impl.protocol.RelayConfigAdv
WARNING: Unhandled Element: net.jxta.impl.document.LiteXMLElement@1a125f0 / isOff = <>
28 เม.ย. 2553 11:02:59 net.jxta.impl.loader.RefJxtaLoader findModuleImplAdvertisement
WARNING: Failed to find class for urn:jxta:uuid-DEADBEEFDEAFBABAFEEDBABE0000000C0206
java.lang.ClassNotFoundException: No matching class for : urn:jxta:uuid-DEADBEEFDEAFBABAFEEDBABE0000000C0206
at net.jxta.impl.loader.RefJxtaLoader.findClass(RefJxtaLoader.java:240)

เนื่องจาก jxta 2.5 ทำงานกับ debugger และ load advertisements สำหรับ shell (ซึ่งมันไม่ได้กำหนดไว้) เมื่อหาไม่เจอ มันก็จะสร้าง Warning ซึ่ง java ก็สร้าง exception file not found ทำให้ไม่เห็นผลการทำงาน

ใน jxta 2.5 jxta ย้ายจาก log4j ไปเป็น java.util.loggin ซึ่ง logging level ถูกกำหนดไว้ ดังนั้น INFO และ log ที่ถูกกำหนด จะพิมพ์ออกมาผ่าน System.err.

เราสามารถ reset logging level ดังนี้

import java.util.logging.LogManager;

และใส่คำสั่ง
public static void main(String args[]) {

// Add to remove warning
LogManager.getLogManager().reset();

ก็จะไม่เห็น Warning มาแสดงให้กวนใจครับ

ไม่มีความคิดเห็น: