I am trying the following but am seeing 'no ds injected'. Should this work at this stage?
package org.jboss.as.demos.warwithds.archive;
import java.io.IOException;
import java.io.Writer;
import java.sql.Connection;
import java.sql.ResultSet;
import javax.annotation.Resource;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
import org.jboss.logging.Logger;
/**
*
* @author <a href="kabir.khan@jboss.com">Kabir Khan</a>
* @version $Revision: 1.1 $
*/
@WebServlet(name="SimpleServlet", urlPatterns={"/simple", "/other"})
public class SimpleServlet extends HttpServlet {
private static final long serialVersionUID = -2579304186167063651L;
Logger log = Logger.getLogger(SimpleServlet.class.getName());
@Resource(mappedName="java:/H2DS")
DataSource ds;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
if (ds == null) {
System.out.println("No ds injected");
try {
ds = (DataSource)new InitialContext().lookup("java:/H2DS");
} catch (Exception e) {
throw new ServletException("Could not find ds", e);
}
}
String result = "Failure";
try {
Connection conn = ds.getConnection();
ResultSet rs = conn.prepareStatement("select 1").executeQuery();
if (rs.next()) {
result = "Success";
}
} catch (Exception e) {
throw new ServletException(e);
}
Writer writer = resp.getWriter();
writer.write("Simple Servlet datasource " + result);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doGet(req, resp);
}
}