วันพุธที่ 12 กุมภาพันธ์ พ.ศ. 2557

เมื่อ Connection Pool DataSource Tomcat 6.0 ไม่ได้

ในเรื่องการติดต่อ 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)



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

แสดงความคิดเห็น