【发布时间】:2014-08-13 05:03:52
【问题描述】:
我正在尝试connect with a database connection pool:
thufir@dur:~$
thufir@dur:~$ java -jar NetBeansProjects/Dialer/dist/Dialer.jar
hello world
Jun 23, 2014 1:04:39 AM net.bounceme.dur.Dialer <init>
INFO: {dur.reports.db.jndi.name=jdbc/vehicles, dur.db.jndi.name=jdbc/vehicles, dur.reports.db.type=MYSQL, reports.exportRawData=true, dur.db.type=MYSQL}
Jun 23, 2014 1:04:39 AM net.bounceme.dur.Dialer <init>
SEVERE: null
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:344)
at javax.naming.InitialContext.lookup(InitialContext.java:411)
at net.bounceme.dur.Connector.<init>(Connector.java:15)
at net.bounceme.dur.Dialer.<init>(Dialer.java:19)
at net.bounceme.dur.Dialer.main(Dialer.java:26)
thufir@dur:~$
我认为可以为控制台应用程序使用 JNDI 和连接池,而无需 Tomcat、Glassfish 或类似工具?
package net.bounceme.dur;
import java.sql.SQLException;
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class Connector {
public Connector(Properties props) throws NamingException, SQLException {
InitialContext ctx = new InitialContext();
//ctx.lookup(null); //????????
DataSource ds = (DataSource) ctx.lookup(props.getProperty("dur.db.jndi.name"));
}
}
或者,使用某种服务器或容器是绝对必要的吗?
【问题讨论】:
标签: java database jdbc jndi connection-pooling