Sto provando a fare qualcosa apparentemente semplice: impostare un piccolo pool di connessioni database in modo che un servlet (solo uno) non crei il mio server a 1 connessione al secondo.jetty mysql database pooling pool
Su Ubuntu 10.04
, con l'ultimo aggiornamento/aggiornamento, sto usando Eclipse Jetty 8.1.5.v20120716
. Sto cercando di connettermi a un server MySQL 5.1
.
mio servlet viene chiamato gcm
, quindi in ${jetty}/contexts
, ho questo gcm.xml
di file:
<?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>
Quando inizio Pontile con java -jar start.jar -port=8080
, tutto comincia bene fino a quando cerco di colpire il database dal mio servlet. La parte il codice di gestione della richiesta si presenta così:
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...
L'errore che ottengo è:
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)
Come arrivare Jetty per trovare il codice del database?
Ciao Sumit, grazie per la risposta, ma se lo metto in un file chiamato "web.xml", o in qualsiasi parte del mio file gcm.xml, mi viene detto "Impossibile raggiungere l'obiettivo del nodo: avviato", e " Tipo di configurazione sconosciuto: resource-ref in " –
Ho dimenticato di menzionare: se colpisco il mio servlet a quel punto, ho ancora lo stesso errore NameNotFoundException. –