分享

JNDI

 昵称9346469 2012-03-25
JNDI_Spring_TOMCAT5.5.25
-----------------------------------------------------------------------------------------------------------
九个文件
-----------------------------------------------------------------------------------------------------------
tomcat-users.xml
server.xml
TOMCAT.xml
Book.javas
BookDao.java
JdbcCodeBookDao.java
web.xml
test.java
config.xml
-----------------------------------------------------------------------------------------------------------
tomcat-users.xml

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="Tomcat"/>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="admin" password="pass" fullName="test" roles="admin,manager,role1,Tomcat"/>
</tomcat-users>

-----------------------------------------------------------------------------------------------------------
server.xml
-----------------------------------------------------------------------------------------------------------
<!-- Global JNDI resources -->
<GlobalNamingResources>

    <!-- Test entry for demonstration purposes -->
    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>

    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users -->
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
       description="User database that can be updated and saved"
           factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
          pathname="conf/tomcat-users.xml" />

<Resource
      name="jdbc/mysql"
      type="javax.sql.DataSource"
      password="admin"
      driverClassName="com.mysql.jdbc.Driver"
      maxIdle="2"
      maxWait="5000"
      username="root"
      url="jdbc:mysql://127.0.0.1/test"
      maxActive="4"/>

</GlobalNamingResources>


-----------------------------------------------------------------------------------------------------------
TOMCAT.xml
-----------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
      name="jdbc/mysql"
      type="javax.sql.DataSource"
      password="admin"
      driverClassName="com.mysql.jdbc.Driver"
      maxIdle="2"
      maxWait="5000"
      username="root"
      url="jdbc:mysql://127.0.0.1/test"
      maxActive="4"/>
</Context>
-----------------------------------------------------------------------------------------------------------
Book.java
-----------------------------------------------------------------------------------------------------------
public class Book {
    private String id;
    private String name;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

-----------------------------------------------------------------------------------------------------------
BookDao.java
-----------------------------------------------------------------------------------------------------------
import java.util.List;
public interface BookDao {
    List<Book> queryAll();

}

-----------------------------------------------------------------------------------------------------------
JdbcCodeBookDao.java
-----------------------------------------------------------------------------------------------------------
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import javax.sql.DataSource;
import org.springframework.dao.DataRetrievalFailureException;
public class JdbcCodeBookDao implements BookDao {
    private DataSource dataSource;
    public void setDataSource(DataSource dataSource) {
        this.dataSource = dataSource;
    }
    public List<Book> queryAll() {
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
        try {
            conn = dataSource.getConnection();
            stmt = conn.createStatement();
            rs = stmt.executeQuery("select * from user");
            List<Book> books = new ArrayList<Book>(10);
            while (rs.next()) {
                Book book = new Book();
                book.setId(rs.getString("id"));
                book.setName(rs.getString("name"));
                books.add(book);
            }
            return books;
        } catch (SQLException sqle) {
            throw new DataRetrievalFailureException("Retrieval failed.", sqle);
        } finally {
            if (rs != null) {
                try {
                    rs.close();
                } catch (SQLException e) {}
            }
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {}
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {}
            }
        }
    }
}

-----------------------------------------------------------------------------------------------------------
web.xml
-----------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java./xml/ns/j2ee" xmlns:xsi="http://www./2001/XMLSchema-

instance" xsi:schemaLocation="http://java./xml/ns/j2ee 
    http://java./xml/ns/j2ee/web-app_2_4.xsd">
    <resource-ref>
        <description>DB Connection</description>
        <res-ref-name>jdbc/mysql</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>


    <servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>test</servlet-name>
        <servlet-class>test</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>test</servlet-name>
        <url-pattern>/servlet/test</url-pattern>
    </servlet-mapping>






</web-app>

-----------------------------------------------------------------------------------------------------------
test.java
-----------------------------------------------------------------------------------------------------------
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class test extends HttpServlet {
    public test() {
        super();
    }
    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        ApplicationContext context = new ClassPathXmlApplicationContext(
                "config.xml");
        BookDao bookDao = (BookDao) context.getBean("jdbcCodeBookDao");
        List list = bookDao.queryAll();
        for (int i = 0; i < list.size(); i++) {
            Book book = (Book) list.get(i);
            System.out.println(book.getId() + ":" + book.getName());
        }
        //
        System.out.println("==END==");
        //
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out
                .println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 

Transitional//EN\">");
        out.println("<HTML>");
        out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
        out.println(" <BODY>");
        out.print("    This is ");
        out.print(this.getClass());
        out.println(", using the POST method");
        out.println(" </BODY>");
        out.println("</HTML>");
        out.flush();
        out.close();
    }
    public void init() throws ServletException {
    // Put your code here
    }
}

-----------------------------------------------------------------------------------------------------------
config.xml
-----------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTO BEAN//EN" "http://www./dtd/spring-beans.dtd">
<beans>

    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="java:comp/env/jdbc/mysql"/>
      
    </bean>
    <bean id="jdbcCodeBookDao" class="JdbcCodeBookDao">
        <property name="dataSource" ref="dataSource" />
    </bean>



</beans>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多