วันพฤหัสบดีที่ 25 ตุลาคม พ.ศ. 2550

วิธีแก้ปัญหาเวลา Deploy EJB ไม่ได้ใน RAD 6.0

โดยปกติเราจะคลิกขวาแล้ว Deploy EJB เพื่อจะให้มัน Generate Stub เพื่อใช้ในการเรียก EJB นั้นๆ ในบางทีกรณีที่ทำหลายคนแล้ว Sync มาเราจะไม่สามารถ Deploy EJB ได้ครับ เลยต้องใช้วิธีทำจาก Command Prompt แทนโดย ไปที Directory ที่เรา install RAD 6.0 ไว้ แล้วจะอยู่ที่ IBM\Rational\SDP\6.0\runtimes\base_v6\bin\ แล้ว File ชื่อ ejbDeploy.bat

โดยใช้คำสั่งดังนี้
ejbdeploy inputEarFile Directory OutEar
Example
ejbDeploy test.ear c:\Temp testTemp.ear
พอทำเสร็จมันก็จะ Generate Folder Workspace ไว้ให้แล้วเราก็ Copy File ใน EJB Project มาทับของเดิมที่มีอยู่แล้ว Generate ใหม่ก็จะทำงานได้แล้วครับ

วันพุธที่ 17 ตุลาคม พ.ศ. 2550

วิธีการสร้าง XML อย่างง่ายโดยใช้ Dom4J

เวบของ DOM4J


Document vDocument = DocumentHelper.createDocument(); //ไว้สำหรับสร้าง Document XML
Element rootElement = vDocument.addElement("Header"); // สร้างส่วนหัวของ XML
rootElement.addElement("Parameter1"); // สร้าง Element ข้างในแบบไม่มีค่าใน Element
rootElement.addElement("Parameter2").addText("123456"); //สร้าง Element ข้างในแบบมีค่าใน Elementซึ่งค่าห้ามเป็น NULL
rootElement.addElement("Parameter3").addAttribute("total","3"); // สร้าง Element แบบมี Attribute
Element subElement = rootElement.addElement("Parameter4");
//สร้าง Sub Element ข้างใน
subElement.addElement("SubParameter").addText("Sub");

จะได้ข้อมูล ตามข้างล่าง

<?xml version="1.0" encoding="UTF-8">
<Header>
<Parameter1></Parameter1>
<Parameter2>123456</Parameter2>
<Parameter3 total="3"/>
<Parameter4>
<SubParameter>Sub</SubParameter>
</Parameter4>
</Header>

วันอังคารที่ 16 ตุลาคม พ.ศ. 2550

การ Set Connection Timeout ใน Web Service

การ Set Timeout เราสามารถที่จะ Config ไดสองที่ใน Axis คือ
org.apache.axis.client.Stub กับ org.apache.axis.client.Call เป็น SetTimeout
ถ้าเราไปใช้ Call RPC ตรงๆ จะไม่มี Config นะครับ ต้องทำแบบนี้แทน ถึงจะได้น่ะครับ

org.apache.axis.client.Call call = new org.apache.axis.client.Call(service);
call.setTimeout(timeOutWS);//Time Out Web Service เวลาเป็น หน่วย ms ครับ


สำหรับการ Set TimeOut ใน Websphere 6.xxx นั้น เราจะทำที่ Class ที่ลงท้ายด้วย stub แล้วไป Config ที่ Method Invoke (Class com.ibm.ws.webservices.engine.MessageContext) ครับ มันจะมี .setTimeOut (บน Rad 6.0 มันเป็นการ Set Read TimeOut น่ะครับ ต้องไปให้ Eclipse Generate แทน แล้วไป Config ที่ call แทนครับ ตามข้างบน)ได้เลยครับ ซึง Set เป็น ms ครับ แต่ให้จำไว้ว่า ถ้าเราทำการ Rebuild ใหม่ ข้อมูลพวกนี้จะหายเราต้องกลัมา Config ใหม่

วันพฤหัสบดีที่ 4 ตุลาคม พ.ศ. 2550

การ Set Connection Timeout ใน Socket

มันจะมีสองตัวให้ Config น่ะครับ เป็น soTimeout ของ Socket อันนี้คือระยะเวลา Ideal ของ Socket ถ้าเกินก็จะ Timeout ออกไปต้อง Connect ใหม่ กับ ตอน socket.connect (InetSocketAddress, Timeout) อันนี้จะเป็น Timeout ของการรอตอบกลับค่าจาก External System ที่เราไปเรียก ซึ่ง ตามตัวอย่างข้างล่าง

Example
InetSocketAddress socketAddr = new InetSocketAddress(url,port);
Socket socket = new Socket();
socket.connect(socketAddr,readTimeout);
socket.setSoTimeout(idealTimeout);

วันอังคารที่ 2 ตุลาคม พ.ศ. 2550

ปัญหา ORA-12705 บน Websphere

ปัญหาของการ Config Datasource แล้วไม่สามารถ Test Connection ได้ แล้วเกิด Error ORA-12705 ขึ้นน่ะครับ เกิดจากเรา Config Language ของเครื่องไม่ตรงกับ NLS_LANG ของ Oracle Client ของเครื่องเราเอง พอ Config เสร็จก็ Test Connection ใหม่ก็จะใช้งานได้แล้วครับ

วิธี Config Language ของเครื่อง
1. ไปที่ Control Panel --> Regional and Language Options
2. ที่ Tab Regional Options แล้วเลือกทั้งสองอันเป็นภาษาของเราเอง (Thai หรือ English ก็ได้) บางทีมันเป็นภาษา เช่น tar เป็นต้น Oracle ไม่รู้จักเลย Connect ไม่ได้


Reference
http://www.dba-oracle.com/t_ora_12705_resolution.htm