Tomcat @Resource annotations API annotation stops working in Tomcat 7

后端 未结 4 2083
暗喜
暗喜 2021-01-29 12:44

I have been using Tomcat 6.0.26-6.0.35 for several years with JSF 2 Mojarra, various versions up to 2.1.2 which I have been using for some months. I have several request-scoped

4条回答
  •  耶瑟儿~
    2021-01-29 13:04

    Sorry I'm unable to comment due to rep or I would of asked for more clarification on what errors/etc you are seeing. That being said I have tested with both Tomcat 7.0.27 and Tomcat 7.0.41 with java full version "1.6.0_51-b11-457" and was able to use @Resource.

    Context.xml

    
    
      
    
    

    ResourceTest.java

    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    import javax.annotation.Resource;
    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;
    
    @WebServlet("/ResourceTest")
    public class ResourceTest extends HttpServlet {
      private static final long serialVersionUID = 1L;
      @Resource(name="jdbc/Sample")
      private DataSource ds;
    
    
    public ResourceTest() {
        // TODO Auto-generated constructor stub
    }
    
    
    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        PrintWriter out = response.getWriter();
        out.println("");
    
    
        try {
            //Context initCtx = new InitialContext();
            //Context envCtx = (Context) initCtx.lookup("java:comp/env");
            //DataSource ds = (DataSource) envCtx.lookup("jdbc/Sample");
            Connection conn = ds.getConnection();
            Statement s = conn.createStatement();
            s.execute("Select * From \"NBUSER\".\"Friends\"");
            ResultSet rs = s.getResultSet();
            while (rs.next()) {
                out.println(rs.getString("NAME") + " is my friend.");
            }
            conn.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    
        out.println("");
    
    }
    
    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }
    
    }
    

提交回复
热议问题