मैं कुछ सरल प्रतीत करने की कोशिश कर रहा हूं: डेटाबेस कनेक्शन का एक छोटा पूल सेट करें ताकि एक सर्वलेट (केवल एक) प्रति सेकंड 1 कनेक्शन पर मेरा सर्वर नहीं बना सके।जेट्टी mysql डेटाबेस कनेक्शन पूलिंग
Ubuntu 10.04
पर, नवीनतम अपग्रेड/अपडेट के साथ, मैं Eclipse Jetty 8.1.5.v20120716
का उपयोग कर रहा हूं। मैं MySQL 5.1
सर्वर से कनेक्ट करने का प्रयास कर रहा हूं।
मेरे सर्वलेट gcm
कहा जाता है, ${jetty}/contexts
में ऐसा है, तो मैं इस gcm.xml
फ़ाइल है:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure id="wac" class="org.eclipse.jetty.webapp.WebAppContext">
<New id="jdbc/myds" class="org.eclipse.jetty.plus.jndi.Resource">
<Arg></Arg>
<Arg>jdbc/myds</Arg>
<Arg>
<New class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource">
<Set name="Url">jdbc:mysql://localhost:3306/chat</Set>
<Set name="User">root</Set>
<Set name="Password">sillyness</Set>
</New>
</Arg>
</New>
<Set name="contextPath">/</Set>
<Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/gcm</Set>
<Set name="extractWAR">true</Set>
</Configure>
जब मैं java -jar start.jar -port=8080
साथ जेट्टी शुरू करते हैं, सब कुछ ठीक शुरू होता है जब तक मैं अपने सर्वलेट से डेटाबेस हिट करने के लिए प्रयास करें। अनुरोध के कोड से निपटने हिस्सा इस तरह दिखता है:
public static List<String> getDevices()
throws javax.naming.NamingException, java.sql.SQLException {
synchronized (regIds) {
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/myds");
Connection conn = null;
Statement stmt = null;
try {
conn = ds.getConnection();
stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from chatdevice");
//blah,blah,blah...
त्रुटि मैं मिलता है:
javax.naming.NameNotFoundException; remaining name 'jdbc/myds'
at org.eclipse.jetty.jndi.NamingContext.lookup(NamingContext.java:500)
at org.eclipse.jetty.jndi.NamingContext.lookup(NamingContext.java:531)
at org.eclipse.jetty.jndi.NamingContext.lookup(NamingContext.java:531)
at org.eclipse.jetty.jndi.NamingContext.lookup(NamingContext.java:546)
at org.eclipse.jetty.jndi.java.javaRootURLContext.lookup(javaRootURLContext.java:112)
at javax.naming.InitialContext.lookup(InitialContext.java:409)
at com.google.android.gcm.demo.server.Datastore.getDevices(Datastore.java:98)
कैसे जेट्टी डेटाबेस कोड को खोजने के लिए प्राप्त करने के लिए?
हाय सुमित, उत्तर के लिए धन्यवाद, लेकिन अगर मैंने इसे 'web.xml' नामक फ़ाइल में रखा है, या मेरी gcm.xml फ़ाइल में कहीं भी, मुझे बताया गया है "नोड लक्ष्य तक पहुंचने में असमर्थ: प्रारंभ", और " अज्ञात कॉन्फ़िगरेशन प्रकार: में संसाधन-रेफरी " –
मैं उल्लेख करना भूल गया: अगर मैंने उस बिंदु पर अपना सर्वलेट मारा, तो मुझे अभी भी एक ही त्रुटि NameNotFoundException मिलती है। –