Category: Java

Add MySQL Driver on JBoss Wildfly

เนื่องจากตัว Wildfly นั้น bundle H2ซึ่งเป็น In memory database มาให้ซึ่งมันเหมาะกับการใช้งานขั่วคราว เพราะเวลามัน Restart ข้อมูลที่เราใช้งานไปมันก็จะหายไปด้วย

ดังนั้นก็เลยต้องทำการเพิ่ม Driver ข้อ Database ยี่ห้อที่เราต้องการใช้งานจริงลงไป ในตัวอย่างที่ผมทำ ผมเลือกใช้ MySQL นะครับ

เริ่มจากไป download MySQL Driver for Java จากเวบ MySQL เอง https://dev.mysql.com/downloads/connector/j/

หลังจากนั้นให้เรา path ไปยังตัว Wildfly ไปยัง <wildfly>/modules/

แล้วทำการสร้าง directory ดังนี้ com/mysql/main ดังนั้นเราจะได้โครงสร้างดังนี้ <wildfly>/modules/com/mysql/main  หลังจากนั้นให้นำตัว driver ที่ได้ download เอาไว้มาใส่ไว้ตรงตำแหน่งนี้ (mysql-connector-java-x.x.xx-bin.jar)

Read more

Install JBoss Keycloak on Ubuntu 14.04.3 LTS

มารู้จักไอ้เจ้า JBoss Keycloak กันซักหน่อย .. เริ่มจากผมเองขี้เกียจเขียนในส่วนของการทำ Auth และ SSO เลยพยายามหา Opensource ที่ช่วยในเรื่องนี้ หาไปหามาก็เลยไปเจอกับ JBoss Keycloak นี้ละครับ

มันมีความสามารถในหลายอย่าง ตั้งแต่ User Registration, Sessions Management ฯลฯ ไปหาอ่านกันต่อได้ที่ http://keycloak.jboss.org/

 

เรามาเริ่มกันเลยดีกว่า

 

เริ่มจาก download jboss keycloak จากเวบ keycloak.jboss.org ในตัวอย่างนี้ผมจะใช้ version 1.8.0 CR1

wget http://downloads.jboss.org/keycloak/1.8.0.CR1/keycloak-1.8.0.CR1.zip

หลังจากนั้น unzip ไฟล์

unzip keycloak-1.8.0.CR1.zip

เนื่องจาก package ที่ผม download นั้นจะ bundle ตัว keycloak มากับ application server  ซึ่งจะเป็น jboss wildfly 9 ให้เราลองเข้าไป start jboss wildfly เพื่อทดสอบดูกันก่อน

cd ~/keycloak/keycloak-1.8.0.CR1/bin

./standalone.sh 

หลังจากนั้นทดสอบเปิด browser ไปยัง http://localhost:8080/ ก็จะพบหน้าตามประมาณนี้เป็นอันเสร็จขั้นตอนเบื้องต้นในการติดตั้ง

keycloak

When the XML parser faced with Invalid XML Characters

เพิ่งเจอปัญหาตอน parse XML ที่เก็บข้อมูล Audit Log ไว้บน database ตอน parse  พบว่าโดน error messages แบบนี้เข้าไป org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0x1a)  ปัญหานี้น้องในทีมเจอครับ เบื้องต้นได้รับแจ้งมาว่า “พี่ๆ มัน parse ภาษาไทยไม่ได้” … เอาแล้วเว้ย ปกติก็ไม่เคยเจอแบบนี้เพราะปกติมันก็ผ่านด้วยดีนี่หว่า

Read more

Regular Expression vs ภาษาไทย

วันนี้เจอปัญหาเรื่องการ validate ข้อมูลที่ user กรอกเข้ามาผ่าน form เดิมทีเจ้า validator ที่ทำไว้นั้นตาม requirement เดิมระบุให้สามารถกรอกได้เฉพาะ a-z, A-Z, 0-9, ช่องว่าง และ – (dash) ก็เลยจัดการเขียนโค้ดน่าตาประมาณนี้เพื่อ validate ข้อมูลซึ่งก็ทำงานได้ดี

String regex = “^[0-9a-zA-Z- ]+”;

if(!Pattern.matches(regex, cusAcctValue[i].getNickname().replaceAll(” “,””))) {
valid = false;
errorFlag = true;
errors.add(ActionErrors.GLOBAL_ERROR, new ActionError(“accounts.error.nickname”));
}

Read more

[EJB Note] Stateless vs. Stateful – Part 2

Stateful Session Bean

สิ่งที่ต่างกันมากก็คือทางด้านของ stateful session bean นั้นแต่ละ instance ของตัวมันจะใช้กับ client-bean session เพียงตัวเดียวจนกว่ามันจะทำงานจบ state ของตัวมันซึ่งเราจะเรียก state นี้ว่า “conversational state”  (the instance variables represent the state of a unique client-bean session.)  ยกตัวอย่างให้เห็นภาพกันง่ายๆก็คือ shopping cart ครับ เรามี shopping cart object ซึ่งเป็น instance ของ stateful session bean ในแต่ละ instance นั้นจะทำงานร่วมกับลูกค้าเพียงคนเดยีวเท่านั้น ดังนั้นถ้ามีลูกค้าใช้งานระบบอยู่ 1,000 คน ก็จะมี stateful session bean instance อยู่ 1,000  instance เช่นกัน ถ้า Caller 1 เรียกใช้งาน instance A ไปแล้ว ทุกๆ state ของการทำงาน ก็จะต้องใช้ instance A เพียงอย่างเดียวจนจบ state

Read more

Tags : ,