三个驱动程序在Tomcat的Common/lib下有了,在工程的web-inf/lib下也有了!
解决方案 »
- 麻烦熟悉的童鞋进来帮忙解答下
- 关于Hibernate ehcache二级缓存的问题(有点难度), 请帮忙, 谢谢!
- 没工作经验,怎么办?
- 请教使用pjl-comp-filter进行gzip压缩的问题
- hibernate + hsqldb 保存不了数据,是怎么回事?
- 关于J2EE, B/S 分工开发的问题
- 求助:关于在sqlserver 2000存储过程返回记录集的问题
- c调用java实现的webservice时,如何传递负责数据类型?
- 请教:(急急急)SOAP消息不能超过50K?
- home object,ejb object与enterprise bean class的关系?
- 网上有没有一些现成的XML资源(包括完整的DTD),我想看着来学习。
- 请教各位达人struts问题
1. added resource-ref entry to web.xml<resource-ref>
<description>DataSource for HR app</description>
<res-ref-name>jdbc/hrDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>2. deployed WAR file to Tomcat3. inside <tomcat_install_dir>\conf\Catalina\localhost\<my_app_context>.xml, I made sure that I had the
resourceentry in the file, which should have been populated upon deployment of the WAR file to Tomcat:<Resource auth="Container" description="DataSource for HR app" name="jdbc/hrDS" type="javax.sql.DataSource" />4. inside <tomcat_install_dir>\conf\Catalina\localhost\<context>.xml, I populated the
ResourceParamslike so:
<ResourceParams name="jdbc/hrDS">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>4</value>
</parameter>
<parameter>
<name>password</name>
<value />
</parameter>
<parameter>
<name>url</name>
<value>jdbc:odbc:HRFORECAST</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>sun.jdbc.odbc.JdbcOdbcDriver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
<parameter>
<name>username</name>
<value />
</parameter>
</ResourceParams>
<Resource name="jdbc/UserDB"
auth="UserDB"
type="javax.sql.DataSource"
username="SYSDBA"
password="sdsdsdsd"
driverClassName="interbase.interclient.Driver"
url="jdbc:interbase://localhost//usr/opt/tomcat/webapps/database/main.g db"/>
</Context>
(Note that javatest was the name of my webapp, and javatestDB was the name of my database)1) Copied "mysql-connector-java-3.0.16-ga-bin.jar" to "%CATALINA_HOME%\common\lib" (though I could have instead copied it to the "WEB-INF\lib" directory for my webapp if I didn't plan to use the driver across multiple applications.)2) Added the following to my Java class:
InitialContext ic = new InitialContext();
ds = (DataSource)ic.lookup("java:comp/env/jdbc/javatestDB");
con = ds.getConnection();
3) Added the following within the "web-app" node of "WEB-INF/web.xml" (placing it at an appropriate location based on the DTD for web.xml files):
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/javatestDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
4) Added a "Resource" node within the "Context" node in %CATALINA_HOME%\conf\Catalina\localhost\javatest.xml:
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="C:/eclipse/workspace/javatest" path="/javatest" reloadable="true" workDir="C:\eclipse\workspace\javatest\work">
<Resource auth="Container" name="jdbc/javatestDB" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" password="dbPassword" maxIdle="2" maxWait="5000" username="dbUsername" url="jdbc:mysql://localhost:3306/javatestDB?autoReconnect=true" maxActive="4"/>
</Context>
5) Restarted Tomcat
server.xml:
<?xml version='1.0' encoding='utf-8'?>
<Server>
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<GlobalNamingResources>
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
<Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/>
<Resource name="jdbc/test" type="javax.sql.DataSource"/>
<ResourceParams name="UserDatabase">
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/tomcat-users.xml</value>
</parameter>
</ResourceParams>
<ResourceParams name="jdbc/test">
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test</value>
</parameter>
<parameter>
<name>password</name>
<value>sa</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>4</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
</ResourceParams>
</GlobalNamingResources>
<Service name="Catalina">
<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="8080" redirectPort="8443" maxSpareThreads="75" maxThreads="150" minSpareThreads="25">
</Connector>
<Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443">
</Connector>
<Engine defaultHost="localhost" name="Catalina">
<Host appBase="webapps" name="localhost">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>
</Host>
<Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
</Engine>
</Service>
</Server>
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
web.xml:
<web-app>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list> <error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page>
<resource-ref>
<res-ref-name>jdbc/test</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
test.jsp:
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%
DataSource ds = null;
try{
InitialContext ctx=new InitialContext();
ds=(DataSource)ctx.lookup("java:comp/env/jdbc/test");
System.out.println(ds);
Connection conn = ds.getConnection();
System.out.println(conn);
Statement stmt = conn.createStatement();
String strSql = " select * from tbTest";
ResultSet rs = stmt.executeQuery(strSql);
while(rs.next()){
System.out.println(rs.getString(1));
}
}
catch(Exception ex){
ex.printStackTrace();
}
%>
强烈建议看相应版本文档。