一、 所用文件
1、 apache_2.0.43-win32-x86-no_ssl.msi——apache2.0.43web服务器;
2、 j2sdk-1_4_1_02-windows-i586.exe ——jdk1.4.1;
3、 mod_jk-2.0.43.dll——Apache和Tomcat结合所需的链接文件;
4、 tomcat-4.1.18.exe——应用服务器tomcat4.1.18;
5、 W2Ksp3.exe——jdk1.4必须的Win2000补丁;
6、 jdbcmssql.rar——解压缩后为SqlServer的jdbc驱动包;
二、 安装目录
注:如果不想再次修改配置文件,就要按以下目录进行安装,注意大小写。
1、 安装win2000补丁;
2、 安装j2sdk-1_4_1_02-windows-i586.exe到d:\j2sdk1.4.1;
3、 安装Apache到d:\会形成目录d:\Apache2
4、 安装tomcat到d:\Tomcat4;
三、 具体配置
注:先把各服务停止以后才能开始配置,我的web应用目录为d:\webapp
配置步骤简述:先将tomcat和apache整合,然后配置tomcat连接池,最后用jsp界面测试
1) 在Tomcat4安装目录的conf目录下,新建一个目录jk,里面有两个文件,文件内容如下,可以根据自己实际安装的目录修改:
a、 mod_jk.conf
#
# The following line instructs Apache to load the jk module
#
LoadModule jk_module modules/mod_jk-2.0.43.dll
JkWorkersFile "d:/Tomcat4/conf/jk/workers.properties"
JkLogFile "d:/Tomcat4/logs/mod_jk.log"
#
# Log level to be used by mod_jk
#
JkLogLevel error
#
# Root context mounts for Tomcat
#
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
#########################################################
# Auto configuration for the /query context starts.
#########################################################
#
# The following line makes apache aware of the location of the /annai context
# 可能没有必要
Alias /elearning "d:/webapp"
Options Indexes FollowSymLinks
#
# The following line mounts all JSP files and the /servlet/ uri to tomcat
#
JkMount /servlet/*.jsp ajp13
#
# The following line prohibits users from directly accessing WEB-INF
#
#AllowOverride None
#deny from all
#
# Use Directory too. On Windows, Location doesn't work unless case matches
#
#AllowOverride None
#deny from all
#
# The following line prohibits users from directly accessing META-INF
#
#AllowOverride None
#deny from all
#
# Use Directory too. On Windows, Location doesn't work unless case matches
#
#AllowOverride None
#deny from all
#######################################################
# Auto configuration for the /query context ends.
#######################################################
b、 workers.properties
#
# workers.tomcat_home should point to the location where you
# installed tomcat. This is where you have your conf, webapps and lib
# directories.
#
workers.tomcat_home=D:\Tomcat4
#
# workers.java_home should point to your Java installation. Normally
# you should have a bin and lib directories beneath it.
#
workers.java_home=D:\j2sdk1.4.1
#
# You should configure your environment slash... ps=\ on NT and / on UNIX
# and maybe something different elsewhere.
#
ps=\
# ps=/
#
#------ ADVANCED MODE ------------------------------------------------
#
#
#------ DEFAULT worket list ------------------------------------------
#
#
# The workers that your plugins should create and work with
#
worker.list=ajp13
#
#------ DEFAULT ajp13 WORKER DEFINITION ---------
# Defining a worker named ajp13 and of type ajp13
# Note that the name and the type do not have to match.
#
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
#
# Specifies the load balance factor when used with
# a load balancing worker.
# Note:
# ----> lbfactor must be > 0
# ----> Low lbfactor means less work done by the worker.
worker.ajp13.lbfactor=1
# Specify the size of the open connection cache.
#worker.ajp13.cachesize
#
#------ DEFAULT LOAD BALANCER WORKER DEFINITION
#
# The loadbalancer (type lb) workers perform wighted round-robin
# load balancing with sticky sessions.
# Note:
# ----> If a worker dies, the load balancer will check its state
# once in a while. Until then all work is redirected to peer
# workers.
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=ajp13
2) 把文件mod_jk-2.0.43.dll拷贝到Apache安装目录的moudles目录下;
3) 修改Apache安装目录下conf目录下的httpd.conf:
找到DocumentRoot 后面改为d:\webapp
找到DirectoryIndex 后面改为index.html index.htm index.jsp
在httpd.conf后面加上Include "d:\Tomcat4\conf\jk\mod_jk.conf";
以下为配置连接池:
4) 在tomcat安装目录的conf目录下有server.xml,在server.xml的</Host>的前面加入如下代码:
<Context path="" docBase="d:\\webapp\\" debug="0"
reloadable="true" crossContext="true">
<Environment name="maxExemptions" type="java.lang.Integer"
value="15"/>
<Parameter name="context.param.name" value="context.param.value"
override="false"/>
<Resource name="jdbc/mydb" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/mydb">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>sa</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://server:1433;DatabaseName=test</value>
</parameter>
</ResourceParams>
</Context>
5) 在web应用目录下有一个WEB-INF目录,配置此目录中的web.xml,
加入如下代码(这部分可能不用,也可以启用连接池):
<web-app>
<display-name>webapp</display-name>
<resource-ref>
<res-ref-name>jdbc/mydb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
6) 将jbuilder所使用的jdk改成jdk1.4.1(目录选择jdk1.4.1的安装目录);
7) 将sqlserver的jdbc驱动拷贝到tomcat安装目录的common\lib目录下。
四、 测试代码
注:不能在jbuilder中测试,因为jbuilder自己形成server8080.xml不含连接池配置,role是我数据库中的表。
<%@page language="java" import="java.sql.*,javax.naming.*,javax.sql.DataSource" %>
<% DataSource ds = null;
try {
System.out.println("test");
Context env = (Context)new InitialContext().lookup("java:comp/env");
ds = (DataSource) env.lookup("jdbc/mydb");
}
catch (NamingException ex) {
ex.printStackTrace();
}
Connection con=null;
con = ds.getConnection();
System.out.println("success:"+con.toString());
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select role_id,level_,description from role");
while(rs.next()){
System.out.println("role_id:"+rs.getInt("role_id"));
System.out.println("description:"+rs.getString("description"));
}
rs.close();
rs = null;
stmt.close();
stmt = null;
//return con;
%>
注:建议不要把tomcat的服务在win2000里面自启动,而是手工启动,这样可以在tomcat启动后的消息窗口上看到打印出的结果。
最后、希望各位网友给予批评指正!