JNDI and DataSources
To configure a datasource under tomcat, edit the server.xml file. Here's an example using jtds driver:<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="/myapp" docBase="myapp.war" crossContext="true" debug="1" reloadable="true" trusted="false" unpackWARs="true"> <Resource name="jdbc/MyDS" auth="Container" type="javax.sql.DataSource" driverClassName="net.sourceforge.jtds.jdbc.Driver" url="jdbc:jtds:sqlserver://1.2.3.4/MyDB" username="you" password="sodoff" /> </Context> </Host>
Then a really simple jsp test page:
<%@ page import="javax.sql.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.io.*" %>
<%@ page import="javax.naming.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.01 Trasitional//EN">
<html>
<head><title>DataPipe Test page</title></head>
<body>
<%
Context initCtx = new InitialContext();
DataSource ds = (DataSource) initCtx.lookup("java:comp/env/jdbc/MyDS");
Connection conn = ds.getConnection();
ResultSet rs = null;
Statement stm = null;
try {
stm = conn.createStatement();
rs = stm.executeQuery("SELECT * from mytable");
rs.next();
out.print(rs.getString(1));
rs.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
%>
</body>
</html>