Java
的
Web
开发环境布置向来很烦琐,还记得在做本科毕业设计时配置
JBuilder2005+Weblogic8.1+SQL2k
整合环境时的痛苦经历,近来整合配置
Eclipse3.2+Tomcat5.5.17+Oracle9i
环境又累了
N
小时,这可不得不怪
B/S
结构的
“
苦了开发者,方便千万用户
”
舍己为人精神,以及各种工具版本纷杂带来的不便与不少不负责任网友的胡乱指引。下面小弟把自己的成功经验向大家汇报,希望有需要的友人能少走弯路。具体步骤如下:
1.
安装
Java
开发环境
Eclipse3.2
,安装
Oracle9i
数据库
首先安装
SUN
的
JDK1.4
以上版本的
Java
基础开发环境,配置
Java
系统变量(这个太基础,不具体展开了)。接着下载解压安装
Eclipse3.2
开发环境,根据个人需要安装语言包、
MyEclipse
等插件扩充功能(也可以先不安装)。
安装
Oracle9i
数据库,创建测试数据库:
NBZJU
与
DBA
:
LUHAO/11111
,建立表空间:
LUHAO
和测试表:
USER_INF
。其中
USER_INF
表具有
USER_ID
、
USER_NAME
、
USER_TEL
字段属性,并添如若干测试记录。
2.
安装
Tomcat
及其插件
下载并解压
Tomcat
启动插件
tomcatPluginV31.zip
,将其下目录文件拷入
eclipse/plugins
目录下(这步若成功执行,
eclipse
运行后将发现多了
Tomcat
菜单项及其启动、停止、重启等快捷按钮。若看不到,可能通过删除
eclipse/configuration
目录下除
config.ini
外所有文件,再重启
eclipse
来解决)。
下载
Tomcat
标准程序
apache-tomcat-5.5.17.zip
和
admin
控制台程序
apache-tomcat-5.5.17-admin.zip
(将后者解压入前者的解压目录下可以获得登陆
admin
图形管理界面的功能,这将方便后面的数据源配置,不用直接在
server.xml
中自己输入参数,即通过图形界面配置生成相应的标准
XML
参数。否则手动输入参考来的配置容易出错,因为不同版本
tomcat
的
XML
标记语法解析不同,例如
5.1
版的参数放入
5.5
版是无效的。因此,强烈建议用图形界面配置数据源!)
配置系统变量
“TOMCAT_HOME”
,其值为关联到
apache-tomcat-5.5.17
目录的路径。打开
apache-tomcat-5.5.17/conf/tomcat-users.xml
文件,在<
tomcat-users
><
/tomcat-users
>标记元素中加入:<
user username="luhao" password="12345" roles="admin,manager"/
>,即加入角色身份为
admin
和
manager
的管理员
luhao
,我们之后需要以
manager
角色上传
Web
应用程序和以
admin
角色配置数据员。再打开
apache-tomcat-5.5.17/conf
目录下
server.xml
文件,将<
Connector
元素后
port="8080"
的属性改为
port="8008"
(注意:由于
oracle
已占用了
Tomcat
默认的
8080
访问端口,必须更改其它未被占用的空闲端口,此处假设为
8008
)。
接下来运行
eclipse
程序,配置
Tomcat
属性。打开菜单
“
窗口
/
首选项
”
,打开
“Java/
已安装的
JRE”
选项,将运行环境参数位置定位于
JDK
目录下的
JRE
目录。打开
“Tomcat”
选项,
Tomcat Version
选择
5.x
,
Tomcat Home
定位到
apache-tomcat-5.5.17
目录,其余默认关联即可。打开
“Tomcat/JVM Settings”
和
“Tomcat/Source Path”
选项,
JRE
选择刚配置的已安装的
JRE
,
Automatcially compute source path
打勾。再打开
“Tomcat Manager App”
选项,
url
输入
http://localhost:8008/manager
,
username
和
password
填
Tomc
at
中新加入的
luhao
和
12345
(这步可以保证将
Web
应用程序发布到
Tomcat
,项目
Reload
也不会出错)。
3.
获取
Oracle9i
相应的
JDBC
驱动程序,配置
Data Sources
和
Context
拷贝
Oracle9i
安装目录下
ora90/jdbc/lib/classes12.jar
驱动文件到
Tomcat
目录下
common/lib
公共文件夹下。
然后在
eclipse
中启动
Tomcat
(点击那个猫的图标即可),以
luhao/12345
身份登陆
http://localhost:8008/admin
后新建数据源。其中
JNDI Name
:
jdbc/Oracle
(此数据源
JNDI
名字可以随意取,但不可重复),
Data Source URL
:
jdbc:oracle:thin:@localhost:1521:NBZJU
(
1521
为
Oracle
访问端口,
NBZJU
为要访问的数据库名称),
JDBC Driver Class
:
oracle.jdbc.driver.OracleDriver
(可打开
classes12.jar
文件查看到相应的路径,否则驱动有误),
Username
:
luhao
和
Password
:
11111
(填
NBZJU
数据库有访问权限的用户即可),其余选项默认即可。数据源保存及递交后,
conf
目录下
server.xml
文件的全局命名资源
GlobalNamingResources
元素内将多一项
Resource
属性:
<
Resource
name="jdbc/Oracle"
type="javax.sql.DataSource"
password="11111"
driverClassName="oracle.jdbc.driver.OracleDriver"
maxIdle="2"
maxWait="5000"
username="luhao"
url="jdbc:oracle:thin:@localhost:1521:NBZJU"
maxActive="4"/
>
数据源配置完成后,还须配置相关的上下文信息
context
,来使程序获得
JDNI
初始化引用,从而定位数据源。由于之前定义的是全局资源,我们可在
apache-tomcat-5.5.17/conf/context.xml
文件中的
Context
元素中加入关联属性:
<
ResourceLink global="jdbc/Oracle" name="jdbc/Oracle" type="javax.sql.DataSource"/
>
4.
创建测试
Web
程序
运行
eclipse
,新建一个
Tomcat
项目到任意的当前工作空间,此处项目取名
quickstart
。当项目一经创建,我们就可以发现
apache-tomcat-5.5.17/conf
目录下
server.xml
文件的
Host
元素内自动增加了以下属性内容(用来关联发布
Web
应用程序的工作目录):
<
Host
appBase="webapps"
name="localhost"
><
Context path="/quickstart" reloadable="true" docBase="E:/luhao/workspace/quickstart" workDir="E:/luhao/workspace/quickstart/work" /
>
</Host>
新建
JSP
测试页面
index.jsp
到
quickstart
工程目录下(
JSP
页面编辑需要有支持
Web
开发功能的
eclipse
插件支持,如
MyEclipse
、
WTP
等插件),代码如下:
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="javax.naming.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="java.sql.*" %>
<html><head><title>Oracle JDBC Test</title></head>
<body>
<%
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
ResultSetMetaData md=null;
try{
Context initCtx=new InitialContext();
//获得JNDI初始化上下文信息,即获取目录上下文的引用
DataSource ds=(DataSource)initCtx.lookup("java:comp/env/jdbc/Oracle");
//定位数据源jdbc/Oracle
if(ds!=null){
out.println("已经获得DataSource");
out.println(ds.toString());
conn=ds.getConnection();
if(conn!=null){
out.println("create connection sucess!");
stmt=conn.createStatement();
out.println("createStatement Success!");
rs=stmt.executeQuery("select * from LUHAO.USER_INF");
md=rs.getMetaData();
out.println("<table border=1>");
out.println("<tr>");
for(int i=0;i<md.getColumnCount();i++){
out.println("<td>"+md.getColumnName(i+1)+"</td>");
}
while(rs.next()){
out.println("<tr>");
out.println("<td>"+rs.getString(1)+"</td>");
out.println("<td>"+rs.getString(2)+"</td>");
out.println("<td>"+rs.getString(3)+"</td>");
out.println("<td>");
}
out.println("</table>");
conn.close();
}
}
}catch(Exception e){
out.println(e.toString());
System.out.println(e.toString());
}
%
>
<
/body
>
<
/html
>
5.
启动数据库,运行测试程序
运行测试页面前必须先启动后台数据库。办法是打开
Oracle SQL Plus
,用
DBA
身份连接入
NBZJU
数据库:
conn luhao/11111 as sysdba
,再用命令:
startup
完成启动数据库(
shutdown
可以关闭数据库)。
保存工程,启动
Tomcat
,打开
http://localhost:8008/quickstart/
页面。若能看到各种连接成功的消息及完整的
USER_INF
测试表内容,那么表明整个
Web
测试程序运行成功了!
总结:
实际的整合配置过程,除上述全局化配置方法可行外,还可以采用局部化配置方法(某些版本
Tomcat
可能行不通)。局部化配置方法较全局化配置方法区别仅在于将数据源
jdbc/Oracle
的
Resource
属性内容加入工程所在
quickstart
目录下的
META-INF/context.xml
文件的
Context
元素中去,而不用改变
Tomcat
目录的
conf
子目录下的
server.xml
和
context.xml
文件。
来源:网络