ในเรื่องการติดต่อ Database แบบ DataSource หรือ Pooling ของ Tomcat นั้นอาจจะมีปัญหาบางอย่างที่เรามั้งลืมมันนั้นคือ ต้องเอา Lib JDBC ของ Database นั้นไปวางไวที่ path /apache-tomcat-6.0.18/lib
เพื่อให้ Server รู้จัก lib ของ DB นั้น ตัวอย่าง Error ที่มักเจอกรณีที่ลืมวาง lib จะขึ้น Error ดังนี้เมื่อเรียกโปรแกรม
HTTP Status 500 -
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.informix.jdbc.IfxDriver'
org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1136)
org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
crm.servlets.loginServlet.performTask(loginServlet.java:282)
com.lh.servlet.BaseHttpServlet.doPost(BaseHttpServlet.java:37)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
java.lang.ClassNotFoundException: com.informix.jdbc.IfxDriver
java.net.URLClassLoader$1.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(Unknown Source)
java.lang.ClassLoader.loadClass(Unknown Source)
java.lang.ClassLoader.loadClass(Unknown Source)
java.lang.ClassLoader.loadClassInternal(Unknown Source)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Unknown Source)
org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1130)
org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
crm.servlets.loginServlet.performTask(loginServlet.java:282)
com.lh.servlet.BaseHttpServlet.doPost(BaseHttpServlet.java:37)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.
--------------------------------------------------------------------------------
Apache Tomcat/6.0.18
เมื่อเกิด Error ดังกล่าวข้างบนให้นำ lib JDBC ไปวางไว้ใน path ดังกล่าว แสดงดังภาพด้านล่าง
(for Database Informix)

ไม่มีความคิดเห็น:
แสดงความคิดเห็น