|
呵呵,刚在jsp里面用jdbc连接mysql数据库的时候,发现程序出现了一个错误:
Java ... ConnectException: Connection refuse
后来查了一些资料,总算解决了,高兴之余,也想来写一篇贴子,来帮助一下其它新手。
由于slackware 10.2 自带有apache ,mysql也是已经安装了的,因此我们不用再去安装它。
安装apache-tomcat-5.5.12也是较简单的,我们直接从网站上面下载apache-tomcat-5.5.12.tar.gz 二进制版本便可。解压之后,放到你想安装的目录,我这里是放在/usr/local/software/apache-tomcat-5.5.12
启动tomcat的命令是:
root@#cd bin
root@#./startup.sh
现在我们可以在地址栏输入http://127.0.0.1:8080,如果看到可爱的猫首页,就说明成功运行了。
关闭tomcat的命令是
root@#./shutdown.sh
同样我们输入http://127.0.0.1,可以看到apache的本地首页
同样我们要确保mysql是否启动了
root@#mysql -u root -p
Enter Password:
输入你的root账号密码,注意,不是系统的root,是mysql的账号root的密码,一般是空,如果你修改过,就输入你修改后的密码哈。看到下面的提示符,就说明进到了mysql管理
mysql>
现在,我们就是要来让apache 与 tomcat 5.5.12整合,实现的目的,就是让apache来做html这样的静态页面服务,而让tomcat 5.5.12做jsp,jspx,servlet这一些服务。
首先,我们需要mod_jk.so这个文件,主要是用来与tomcat接口连接,有点像桥接的作用。
下载apache-tomcat-5.5.12-src.tar.gz
然后解开,进到jakarta-tomcat-connectors/jk/native目录下面
root@#./buildconfig.sh
root@#./configure --with-apxs="/usr/sbin/apxs” --with-java-home="/usr/lib/java
root@#make
我们只需要编译就行了,不需要安装,因为10.2自带了jre1.5.0_04
编译完成之后,我们在apache-1.3目录下面会找到一个mod_jk.so.0.0.0文件,并改名为mod_jk.so文件便可。
我们把这个文件copy到/usr/libexec/apache目录下面
同时,我们需要修改/etc/apache/httpd.conf文件
# Example:
# LoadModule foo_module libexec/mod_foo.so
省略中间部分内容,并在这段后面添加一句
LoadModule jk_module libexec/apache/mod_jk.so
# Reconstruction of the complete module list from all available modules
# (static and shared ones) to achieve correct module execution order.
# [WHENEVER YOU CHANGE THE LOADMODULE SECTION ABOVE UPDATE THIS, TOO]
AddModule mod_setenvif.c
在上面这句下面,添加这句
AddModule mod_jk.c
在httpd.conf文件的最后,我们加上这句
Include /etc/apache/mod_jk.conf
保存之后,我们来建一个mod_jk.conf文件,内容如下:
#
# mod_jk - jsp Hypertext Preprocessor module
#
JkWorkersFile /etc/apache/workers.properties
JkLogFile /var/log/mod_jk.log
JkLogLevel warn
# Sample JkMounts. Replace these with the paths you would
# like to mount from your JSP server.
JkMount /*.jsp ajp13
JkMount /*.jspx ajp13
JkMount /servlet-class/* ajp13
保存之后,我们再来同一个目录下面新建一个workers.properties文件,内容如下:
[channel.socket:localhost:8009]
port=8009
host=127.0.0.1
[ajp13:localhost:8009]
channel=channel.socket:localhost:8009
worker=ajp13:localhost:8009
保存之后,基本上apache的网站下面就可以处理jsp文件了。
我们可以copy一下/usr/local/software/apache-tomcat-5.5.12/webapps/ROOT目录下面的index.jsp文件到/var/www/htdocs目录下面,或者你自己写一个jsp文件放到这下面
我们用http://127.0.0.1/index.jsp就可以看到jsp文件可以执行了
关于servlet的执行,我们需要在站点目录下面建一个servlet-class(当然这个目录名是可以自己在
JkMount /servlet-class/* ajp13 这段里面改的),然后将servlet文件放到这下面,当然,你最好复制/usr/local/software/apache-tomcat-5.5.12/webapps/servlets-examples下面的所有到apache站点下面的servlet-class目录下。
我们访问的时候就用http://127.0.0.1/servlet-class/servlet/HelloWorldExample
就可以看到
HelloWorldExample
这样的内容了。
******************************************************************
现在,我们再来说一下,用jdbc驱动,来连接mysql数据库
首先我们需要下载mysql-connector-java-3.1.11-bin.jar文件,下载地址:http://mysql.belnet.be/Downloads ... -java-3.1.11.tar.gz
然后我们解压,将mysql-connector-java-3.1.11-bin.jar复制到
/usr/local/software/apache-tomcat-5.5.12/common/lib目录下面
最好在复制一个到/usr/lib/jre1.5.0_04/lib/ext目录下面
然后,我们重启tomcat服务
root@# cd /usr/local/software/apache-tomcat-5.5.12/bin
root@#./shutdown.sh
root@#./startup.sh
现在我们在网站下面放一个jdbc.jsp文件,内容为:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="com.mysql.jdbc.Driver" %>
<html>
<body>
<%
//请将相关部分,修改成你自己的参数
//驱动程序名
String driverName="com.mysql.jdbc.Driver";
//数据库用户名
String userName="root";
//密码
String userPasswd="111111";
//数据库名
String dbName="test";
//表名
String tableName="manageuser";
//联结字符串
String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection=DriverManager.getConnection(url);
Statement statement = connection.createStatement();
String sql="SELECT * FROM "+tableName;
ResultSet rs = statement.executeQuery(sql);
//获得数据结果集合
ResultSetMetaData rmeta = rs.getMetaData();
//确定数据集的列数,亦字段数
int numColumns=rmeta.getColumnCount();
// 输出每一个数据值
//mid是表里面的字段名,请改成你自己的
out.print("mid");
out.print("|");
//account是表里面的字段名,请改成你自己的
out.print("account");
out.print("<br>");
while(rs.next()) {
out.print(rs.getString(1)+" ");
out.print("|");
out.print(rs.getString(2));
out.print("<br>");
}
out.print("<br>");
out.print("数据库操作成功,恭喜你");
rs.close();
statement.close();
connection.close();
%>
</body>
</html>
然后,我们用http://127.0.0.1/jdbc.jsp访问,会发现如下错误:(Socket连接被拒绝)
java.net.SocketException
MESSAGE: java.net.ConnectException: Connection refused
这个错误,是因为mysql的服务里面的tcp/ip Socket没有开启。
我们修改/etc/rc.d/rc.mysqld文件
找到
SKIP="--skip-networking"
这句,我们将它注解掉
#SKIP="--skip-networking"
然后保存,重启mysql服务
root@#/etc/rc.d/rc.mysqld stop
root@#/etc/rc.d/rc.mysqld start
这样我们在访问jdbc.jsp文件,就会OK了。
mid|account
1 |admin
数据库操作成功,恭喜你
***************************************************
大功告成!关于配置站点这一些,你只有自己搜索资料了,网上有。
希望您能顺利搞定!
乐华 2005-11-08 PM 17:56 于四川绵阳 |
|