Ahad, 3 Januari 2010

Six Sigma, Struts 2.1 dan JavaEE6

Kurang pasti apa masalahnya tetapi struts 2.1 tidak mahu berjalan jika digunakan JavaEE6 bersamanya. Dikatakan bahawa "action" untuk fail tidak dipetakan. Kurang pasti adakah masalah ini berpunca daripada Linux ataupun netbeans 6.8 atau JavaEE itu sendiri. Kerana masalah ini dihadapi jika menggunakan "plugin" tambahan Struts2 atau pun menggunakan "library" luaran. Mungkin masalah konfigurasi yang kurang diketahui dengan lebih lanjut. Oleh itu cara terbaik adalah menukarnya kembali kepada JavaEE5.

Oleh itu projek ilmiah tahun akhir Six Sigma Tools with Struts Framework menggunakan Struts 2.1 (library luar, bukan plugin) dan JavaEE5.

setakat ini semuanya berjalan dengan baik. Kecuali semalam satu kecil yang kelakar.

Apabila mahu di "compare" antara data yang ada didalam pangkalan data dan juga apa yang dimasukkan oleh pengguna (ketika ujian untuk modul log masuk pengguna) masalah yang dijumpai adalah masalah nullPointerException. Setelah dicari dan dijalankan operasi "debug", operasi didalam databaseConnection.java akan berhenti dengan tiba-tiba apa bila sampai ke satu tahap (yang berwarna hijau).
public ResultSet selectQuery(String fields, String tableName, String cond, String orderBy) {
ResultSet resultSet = null;
try { resultSet = stmt.executeQuery("SELECT " + fields + " FROM " + tableName + ((cond == null || cond.equals("")) ? "" : (" WHERE " + cond)) + ((orderBy == null || orderBy.equals("")) ? "" : (" ORDER BY " + orderBy)));
}
catch (SQLException se) {
se.printStackTrace();
}
return resultSet;
}
Mudah kata operasi tersebut gagal. Terdapat beberapa yang membolehkan perkara itu berlaku. Antaranya ketika log masuk ke sistem pangkalan memberikan katalaluan atau nama pengguna yang salah. Ataupun parameter yang diberikan tidak betul. Sama ada nama table yang salah, atau nama lapangan yang salah. Tetapi dalam kes ini semuanya betul

Dan masalah tersebut di ketahui apabila teringat kembali masalah yang pernah dilalui oleh seorang rakan yang lain beberapa hari sebelum itu. Masalahnya sama, puncanya adalah dia tidak memasukkan library MySQL JDBC Driver.

Dan setelah dimasukkan library tersebut, data dapat di "compare" dengan baik.

Buat masa ini. Selesai.

Notakaki: Penulis kini sedang membina sistem untuk projek ilmiah tahun akhirnya yang bertajuk Six Sigma Tools with Struts Framework dan menggunakan Ubuntu 9.10, Linux 2.6.31, NetBeans 6.8, Struts 2.1.8.1.

2 ulasan:

sukiminna berkata...

he..ni selamat sql injection tak?

TMUkmkd berkata...

@suki aku tak shield apa2 pun lagi.. siap pun tak XD