एक आवेदन के लिए टॉमकैट में एक डेटा स्रोत स्थापित करने की कोशिश कर रहे मेरे बाल खींच रहा है। मेरे द्वारा उठाए गए कदम हैं
निम्नलिखित सामग्री के साथ एक META-INF / reference.xml बनाएं
<Context> <Resource name="jdbc/mydb" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver" url="jdbc:oracle:thin:@gpqa6.myserver.com:1526:gpqa6" username="foo" password="foobar" maxActive="20" maxIdle="30" maxWait="-1" /> </Context>
WEB-INF / web.xml में निम्नलिखित पाठ दर्ज करें
<resource-ref> <description>Datasource</description> <res-ref-name>jdbc/mydb</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
कोड में इसका उपयोग करना
public class MyServlet extends HttpServlet { private DataSource ds; public void init() { try { Context ctx = new InitialContext(); ds = (DataSource) ctx.lookup("java:comp/env/jdbc/mydb"); } catch (NamingException e) { e.printStackTrace(); } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //this is where the exception is thrown Connection conn = ds.getConnection(); //...do stuff with the connection }
लेकिन निम्नलिखित त्रुटि प्राप्त करते रहें
"मैपिंग के दौरान एनकाउंटर अपवाद। त्रुटि: पूल करने योग्य निर्माण नहीं कर सकता है (ORA-01017: अमान्य उपयोगकर्ता नाम / पासवर्ड; लॉगऑन अस्वीकृत ) org.apache.tomcat.dbcp.dbcp.SQLNestedException: PoolableConnectionFactory (ORA-01017: अमान्य उपयोगकर्ता नाम / पासवर्ड; लॉगऑन अस्वीकृत) नहीं बना सकता
मुझे पता है कि उपयोगकर्ता नाम और पासवर्ड सही हैं। क्योंकि निम्न कोड काम करता है
Class.forName("oracle.jdbc.OracleDriver").newInstance();
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@gpqa6.myserver.com:1526:gpqa6", "foo", "foobar");
मैंने एक अमान्य url दर्ज करने की कोशिश की, लेकिन फिर भी वही त्रुटि मिली। क्या चल रहा है ???
इसके अलावा, क्या टॉमकैट का वेबलॉजिक या ग्लासफिश के समान डेटा स्रोत के परीक्षण का कोई तरीका है?
उत्तर:
जवाब के लिए 3 № 1अब यह काम कर रहा है। जैसे कि मैं निम्नलिखित कोड के साथ एक संबंध स्थापित करता हूं
Class.forName("oracle.jdbc.OracleDriver").newInstance();
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@gpqa6.myserver.com:1526:gpqa6", "foo", "foobar");
फिर डेटा स्रोत का उपयोग करके वापस स्विच करना, यह ठीक है। शायद यह एक कैशिंग मुद्दा है?
--अद्यतन करें-- यह एक कैशिंग मुद्दा है। Ijust को ConfCatalina फ़ोल्डर को हटाना होगा
इस लिंक ने वास्तव में मदद की। http://pwu-developer.blogspot.com/2010/02/why-isnt-my-datasource-configuration.html