การแก้ไข error Unable to load bean ใน struts 2 com. opensymphony. xwork2. UnknownHandler

งานเข้าอีกแล้วครับ ผมลองดาวน์โหลดเอา struts 2 มาลองรัน Hello World ดู ปรากฎว่า เซตโปรเจ็คเสร็จ พอถึงตอน build เจ้ากรรมมี error ซะงั้น พอลองๆ อ่านดู error มันก็บอกอย่างนี้ครับ

Caused by: Unable to load bean:
type:com.opensymphony.xwork2.UnknownHandler
class:org.apache.struts2.convention.ConventionUnknownHandler …

ก็เลยต้องเข้าไปขอใช้บริการพี่ google ซักหน่อย ก็ไปพบข้อมูลอยู่ที่ Convention Plugin ด้วยความสามารถทางภาษาอันน้อยนนิด พออ่านๆ ไปเค้้าก็บอกว่ามีการเปลี่ยน (converting) จาก Codebehind based application เป็น Convention จึงต้องมีการใส่ค่า constant เข้าไปใน struts.xml ด้วย ก็เลยลองก๊อปปี้ไปแทนค่าเดิมในไฟล์ struts.xml ที่มากับ struts-blank-xxx.war แล้วลอง build ใหม่ก็ไม่ี error ก็เลยไ้ด้ความรู้ใหม่เพิ่มอีกเลยเอามาบอกต่อ เผื่อมีเพื่อนๆ ติดปัญหาเดียวกัน

ค่า constant ในไฟล์ struts.xml เดิม

<constant name=”struts.enable.DynamicMethodInvocation” value=”false” />
<constant name=”struts.devMode” value=”false” />

ค่า constant ใหม่ที่ใส่เข้าไปแทน

<constant name=”struts.convention.action.suffix” value=”Controller” />
<constant name=”struts.convention.action.mapAllMatches” value=”true” />
<constant name=”struts.convention.default.parent.package” value=”rest-default” />

หวังว่าคงจะมีประโยชน์นะครับ ^^