วันศุกร์ที่ 22 มิถุนายน พ.ศ. 2550

การตรวจสอบว่า Web ที่เราติดต่อด้วยยังมีอยู่หรือเปล่า

การตรวจสอบนั้น ผมจะใช้วิธีเปิด Connection ไปแล้วตรวจสอบ Response Header ว่าเป็น 200 หรือเปล่า ถ้าเป็นแสดงว่ายังมีอยู่ ครับ (ควรที่จะเป็นหน้าเพจเช่น .html ในการตรวจสอบ เพราะอย่าง WebService จะไม่ส่งค่ามาให้เป็น 200 นะครับ) ดังตัวอย่างข้างล่าง

URL httpurl = new URL("http://10.4.130.64:9060/ibm/console/login.do");
HttpURLConnection httpcon = (HttpURLConnection) httpurl.openConnection();
httpcon.setRequestMethod("GET");
httpcon.setDoInput(true);
httpcon.setDoOutput(true);
OutputStream out = httpcon.getOutputStream();
out.write(10);
out.flush();
httpcon.connect();
int statusCode = httpcon.getResponseCode();
if (statusCode != 200 ){
//Do Somthing
}


เวบที่น่าสนใจ http://web-sniffer.net/

วันศุกร์ที่ 15 มิถุนายน พ.ศ. 2550

Basic Config Log4J

จะสอนวิธีใช้งานแบบง่ายๆ ของ Log4J นะครับ ว่าจะ Config ยังไงดี ซึ่งเราจะ Config ใน log4j.properties นะครับ Parameter ที่น่าจะรู้

log4j.rootCategory เป็นการกำหนด Log ทั้งหมดของเราว่าจะให้มีระดับเท่าไร ซึ่งใน Log4J จะมีระดับดังนี้ info, warn, debug and fatal
log4j.logger.package เป็นการกำหนดว่าจะให้ที่อยู่ในชื่นี้ทั้งหมดอยู่ในระดบไหน [ตรง Package ให้กำหนดเป็นชื่อหรือ Package ของ Class เราก็ได้ว่าจะให้มันอยู่ในระดับใดของ Log4J]
log4j.appender.package กำหนดว่าจะให้ Log ออกแบบไหน เช่นลงไฟลล์หรือเปล่า
log4j.appender.package.DatePattern เป็นรูปแบบของไฟลล์ว่าพอหมดวันแล้วจะเก็บรูปแบบไหน
log4j.appender.package.File กำหนัดว่าไฟลล์จะชื่ออะไร วางไว้ที่ไหน
log4j.appender.package.MaxFileSize ความจุมากสุดของในแต่ละไฟลล์ ถ้าในวันนึงเกินจะหั่นไฟลล์ออกมา
log4j.appender.package.layout จะให้ Pattern เป็นแบบไหน
log4j.appender.package.layout.ConversionPattern กำหนดรูปแบบว่าจะให้โชว์อะไรบ้าง


ข้างล่างเป็นตัวอย่าง อย่างง่ายๆ ครับ

log4j.rootCategory = Info, stdout //บอกว่าให้ Log ทั้งหมดที่ระดับต่ำกว่า Info ไม่ต้องเอามาแสดง ส่วน stdout คือ System.out
log4j.appender.stdout = org.apache.log4j.ConsoleAppender //เป็นการบอกว่าออกที่ Console
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout //Pattern
log4j.appender.stdout.layout.ConversionPattern = ...[ABC Project]... [%d{dd/MM/yyyy HH:mm:ss,SSS}] (%c:%L) - %5p - %m%n//รูปแบบของการออกโดย จะเป็นดังนี้ ... [ABC Project]... [รูปแบบของวันที่จะเป็น วัน/เดือน/ปี ชั่วโมง:นาที:วินาที,ไมโครวินาที] (ชื่อเต็มเช่น ชื่อ Class รวมกับ Package ทั้งหมด:บรรทัดที่รัน) - Level ของ Log

log4j.logger.com.true_corp.connector = DEBUG,connectorlog //เป็นการบอกว่า Log ที่อยู่ใน Package com.true_corp.connector ทั้งหมดจะมีระดับ Log ที่ Debug แล้วตัวข้างหลังบอกว่าใช้เป็นตัวแปรชื่อนี้
log4j.appender.connectorlog = org.apache.log4j.DailyRollingFileAppender //กำหนดให้ connectorlog เก็บลงไฟลล์
log4j.appender.connectorlog.DatePattern = '.'yyyy_MM_dd //มีรูปแบบของวันเป็น ปี_เดือน_วัน
log4j.appender.connectorlog.File = C:/Connector.log //ลงไฟลล์ชื่อ Connector.log
log4j.appender.connectorlog.MaxFileSize = 10000KB //ขนาดไฟลล์สูงสุดคือ 10 Mb ถ้าเกินจะขึ้นไฟลล์ใหม่
log4j.appender.connectorlog.layout = org.apache.log4j.PatternLayout
log4j.appender.connectorlog.layout.ConversionPattern = ...[Temp Log]... [%d{dd/MM/yyyy HH:mm:ss,SSS}] (%c:%L) - %5p - %m%n

วันอังคารที่ 12 มิถุนายน พ.ศ. 2550

มาใช้ Google Notebook กันเถอะ

ไม่ใช่ เครื่อง Notebook ^_^ นะครับ มันคือกระดาษจด Online ของ Google เหมือนพวก Post-It น่ะครับ แต่อันนี้จะออนไลน์ สามารถ Export ไปเป็น Google Doc ได้ด้วย แล้วก็มี Plugin สำหรับ Firefox ให้ใช้ด้วยครับ แต่บน IE ผมไม่แน่ใจว่ามีหรือเปล่านะครับ ส่วนการสมัครก็ยังเหมือนเดิมแค่มี Account E-Mail ของ Google ก็สมัครได้แล้ว เรามาดูภาพหน้าจอคร่าวๆ กันดีกว่า


อันนี้เป็นหน้าแรกที่เราเข้ามาครับ ของผมจะมีข้อมูลอยู่ก่อนแล้ว

สำหรับหน้าแรกทางซ้ายจะเป็นหัวเรื่องที่เราแยกไว้ เหมือนเป็นสมุดเล่มนึงก็ได้ แล้วด้านขวาจะเป็นข้อมูลในสมุดนั้นมีอะไรบ้างครับ สามารุแยกเป็นแผ่นๆ ได้ว่าจะแยกอะไรบ้าง จะเห็นว่าจะสามารถทำตัวหน้า ตัวสีอะไรได้ ที่จริงผมอยากให้มันแอดรูปได้จะดีมากๆ เลย



หน้าจอ ของการ Share Notebook ของเราครับ (Sharing options)

ซึ่งหน้านี้เราสามารถเลือกได้ว่าจะ Share กับใครบ้าง Invite ใครมา Edit ได้บ้าง ทางขวาจะเห็นลิงค์ สำหรับให้คนข้างนอกเข้ามาดูได้ครับ ลองดูที่นี่



ภาพที่เราลง Plugin สำหรับ Firefox มาแล้วครับ จะอยู่มุมขวาล่าง

จบแล้วครับ วันหลังจะเอาตัวที่น่าสนใจมารีวิวให้ดูกันอีกครับ

วันพุธที่ 6 มิถุนายน พ.ศ. 2550

Config Trust Certification บน Websphere 6.1

สามารถที่จะทำได้สองวิธีคือ ไปอ่านข้อมูลจาก IP และ Port เลย หรือว่าให้เอาไฟลล์ไปวางไว้ที่ Server แล้วอ่านไฟล์ .cer นั้นน่ะครับ

วิธีการทำดังนี้
1. ไปที่เมนู Security --> SSL certificate and key management
2. คลิกที่ Key stores and certificates
3. แล้วเลือก NodeDefaultTrustStore
4. คลิกไปต่อที่ Signer certificates
5. ซึ่งตรงนี้จะมีให้เลือกว่าจะ
5.1 Retrieve from port คือให้ Websphere ไปดึงค่า Certification มาให้เลย
5.2 Config Port คือ ให้กรอกที่อยู่ของ ไฟล์ .cer ที่อยู่ที่เครื่องมาลง
6. แล้วก็ Restart WebServer ก็จะทำงานได้ครับ

หมายเหตุ อย่า Config บน Application ให้ Config บน Server เท่านั้น

วันอังคารที่ 5 มิถุนายน พ.ศ. 2550

Config Log4j บน Websphere 6.x

โดยปกติ ถ้าใช้บน Tomcat เราไม่ต้อง Config แค่เอาไปวางไว้ใน WEB-INF มันก็จะวิ่งไปอ่าน log4j ให้แต่บน Websphere 6.x มันจะม่อ่านเราเลยต้องใช้วิธีบอกตำแหน่งให้มันอ่านเลย ซึ่งทำดังนี้


//ไว้บอกตำแหน่งของ file log4j.properies
String log4j = getServletContext().getRealPath("/WEB-INF/log4j.properties");

//Config Properties File ว่าอ่านที่ตรงนี้
PropertyConfigurator.configure(log4j);


หมายเหตุ ถ้าใช้วิธีนี้จะทำให้ทั้ง Server ใช้ Config นี้ทั้งหมดเพราะฉะนั้นจะต้องเอา Config ของทุก Application มาไว้ใน lo4j.properties ที่เดียวกัน

วิธี Config Timeout สำหรับ Connection

สำหรับคนที่ใช้ JDK 1.5 ขึ้นไปสามารถที่จะ Config Timeout ได้เลยครับ เพราะจะมีให้ Config อยู่แล้ว แต่สำหรับ เวอร์ชั่นต่ำกว่านั้น จะไม่มีให้ Config จะต้องไปใช้ Library ตัวอื่นในการส่งแทนครับ เช่น httpclient