http://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto.html
copy ojdbc5.jar to $TOMCAT_HOME/lib directory
create your "cmdb" webapp folder under $TOMCAT_HOME/webapps/cmdb
create $TOMCAT_HOME/webapps/cmdb/META-INF/context.xml and put this in it:
<?xml version="1.0" encoding="UTF-8"?> <Context> <Resource name="jdbc/cmdb" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521:xe" username="cmdb" password="cmdb" maxActive="20" maxIdle="10" maxWait="-1"/> </Context>
in WEB-INF/web.xml put
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <description>CMDB</description> <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/cmdb</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app>
in WEB-INF\lib put standard.jar and jstl.jar
and your test.jsp is
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <sql:query var="rs" dataSource="jdbc/cmdb"> select JMSMODULENAME from NESOA2_JMSMODULES </sql:query> <html> <head> <title>Machines</title> </head> <body> <h2>Results</h2> <c:forEach var="row" items="${rs.rows}"> JMSMODULENAME ${row.JMSMODULENAME}<br/> </c:forEach> </body> </html>
If you get errors like
"javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (IO Error: The Network Adapter could not establish the connection)""
and "tnsping" works, it's very possible that you need to ipconfig /renew or something like that...
On another instance of Tomcat, the same WebApp works only if I add
<Context path="/cmdb"> <ResourceLink name="jdbc/cmdb" type="javax.sql.DataSource" global="jdbc/cmdb"/> </Context>
No comments:
Post a Comment