本文以weblogic 8.12 中文版为例,将配合贴图讲解安装、配置过程。
一、Weblogic安装开始:
1.1 让人敬佩的bea公司:
提到weblogic,不得不说bea公司。也许大家没有留意,bea公司是一个才1995年才创立的企业,可是这个比我们小一两个时代的小年轻,却是历史上最快实现年营业额达到10亿美元的软件公司,现在号称是全球第6大独立软件公司,确实让人很汗~。
1.2 何处有Webogic?
去网上找了一下,weblogic8.12 + sp2 中文版可以在9iv网站上找到下载。
地址是:http://www.9iv.com/down/down.asp?id=855&no=3
1.3 Weblogic安装其实很傻瓜:
1.3.1 总的来说,weblogic安装过程,抓住两个环节就ok:
◎bea主目录:这是weblogic基础工具程序的主目录;
◎产品安装目录:这是weblogic产品的安装目录
1.3.2 点击开始安装后,漫长的解压之后,开始出现安装界面,结合我的情况,设定bea
主目录为d:/bea,其它都取默认值,一路next,BEA_installer会帮你全盘搞定,
完毕后,点击完成结束。
安装完成后,就可以开始着手部署J2EE项目了。
二、开始部署J2EE web项目
Web项目的部署采用Configuration Wizard工具。依次点击“开始”->“BEA WebLogic Platform
8.1”->“Configuration Wizard”,启动”BEA WebLogic Configuration Wizard”。
2.1 新建weblogic domain
选择”新建weblogic配置”,
然后”下一步”,在”模板”选择”base weblogic server domain”,
然后”下一步”,没有特别的需要就不修改默认选择,然后”下一步”,在这个界面上输入用户名、密码(如填写用户wangnewton,密码wangnewton)和创建这个服务的描述(请记住这个用户密码它是启动这个服务和进入服务控制台的帐号)
然后”下一步”,选择jdk的版本,然后”下一步”,在这个界面你可以修改创建服务的目录和配置名称,然后按”创建”开始创建。
点击完成结束。
2.2 创建应用目录:创建应用目录有两种方式分别介绍如下
2.2.1方法一:继续采用Configuration Wizard 创建
这次选择”extend and existing weblogic configuration(扩展weblogic配置)”,
然后“下一步”,选择前面配置的weblogic配置目录mydomain,然后“下一步”,
在”Configuration Extensions”中勾选”DefaultWebApp”,
然后以下取默认值一路”下一步”直到”导入”就OK了。
默认应用目录一般在D:/bea/user_projects/applications/mydomain/DefaultWebApp(注:d:为我PC机上安装weblogic的盘符,读者根据安装目录进行查找)。
测试:启动weblogic服务,然后输入http://localhost:7001就可以看到介绍性页面了。
2.2.2方法二:使用控制台创建应用目录
使用这个方法最好先要有一个可以发布的web应用,比如大家做过的基于tomcat的项目。没有的话至少要有webapp/WEB-INF/web.xml文件,web.xml文件类似于:
webapp
|__WEB-INF/web.xml
web.xml内容一般是:
<?xml version="1.0" ?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</web-app>
创建好如上的文件结构和web.xml后,启动weblogic服务,完成后在浏览器中输入http://127.0.0.1:7001/console
在登录界面输入你创建weblogic服务时的用户密码(wangnewton)。然后sign in,在下面的页面中选择“Web Application Modules”
点击后进入该界面,点击Deploy a new Web Application Module...
在“Location”下选择你刚才创建的appweb(注意这个目录一定要有WEB-INF目录,并且在WEB-INF目录下一定要有web.xml文件,否则不能够创建应用目录)。选择后,点击”target module”,
返回,可以看到当前weblogic服务中依成功创建的应用目录了。然后再创建一个index.html文档放在appweb目录下,就完成了应用目录的创建。
测试:启动weblogic服务,然后输入http://127.0.0.1:7001/webapp/index.html就可以看到自己设置的页面了。
PS:相对来说,方法二是实际项目中使用最多的一种配置方法。
继续PS:如何设置项目为默认启动路径?
对于刚才创建的应用目录,总要通过http://127.0.0.1:7001/webapp/index.html,能否直接设置成通过http://127.0.0.1:7001/index.html可以访问的方式呢?
方法是在webapp/WEB-INF下新建一个weblogic.xml文件,
webapp
|__WEB-INF/weblogic.xml
weblogic.xml内容一般是:
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
<context-root>/</context-root>
</weblogic-web-app>
三、weblogic 连接池的配置
实例背景:SQL-SERVER 2000的数据库 + JDBC3.0
3.1 配置连接池
进入控制台(console) 可以看到该界面 ,然后点击 Connetion Pools
点击后进入该界面,点击configure a new JDBC Conneciton Pool
点击后显示该界面 因为是使用SQL-SERVER 2000 所以选择MS SQL Server
选择后,选择 MicroSoft’s MS SQL Server Driver (type) Version 。。。[倒数第三个^-^]然后点击Continue
按页面要求填入相关信息
此步骤完成后,进入该页面
点击 Test Driver Configuration ,如果是成功显示该页
点击Create and deploy,
3.2 配置数据源
进入控制台,点击date source。。。
点击后显示该页 点击 configure a new JDBC Data Source
点击后进入该页
以下步骤都是默认选择后显示
由此,数据源就配置成功了,记住这里的JNDIName配置为MyJNDI,稍后将会在程序中被使用。
四、weblogic 连接池测试程序
为了方便,采用一个简单jsp程序进行连接池的测试,连接池使用起来不但可以提高系统吞吐量,而且连接程序也是很简单的。一般大家手头上都会有专业的数据库连接组件,把这个组件修改成为weblogic连接池的组件也是很简单的,只需要执行简单几行代码替换就ok了。但作为新手,可以通过这个jsp测试刚才建立的连接池设置。
<%@ page contentType="text/html;charset=GBK" %>
<%@ page import= "java.sql.* " %>
<%@ page import= "javax.sql.* " %>
<%@ page import= "javax.naming.* "%>
<HTML>
<HEAD>
<TITLE> </TITLE>
<META NAME="Generator" CONTENT="EditPlus2.11">
</HEAD>
<BODY>
<%
// 从weblogic 8 文档抄来
Context ctx = null;
Hashtable ht = new Hashtable();
ht.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
ht.put(Context.PROVIDER_URL,"t3://127.0.0.1:7001");
// ht.put(Context.SECURITY_PRINCIPAL, "admin");
// ht.put(Context.SECURITY_CREDENTIALS, "11111111"); Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
ctx = new InitialContext(ht);
DataSource ds = (DataSource)ctx.lookup ("MyJNDI");
conn = ds.getConnection();
stmt = conn.createStatement();
stmt.execute("select * from accounts");
rs = stmt.getResultSet();
while ( rs.next()){
out.println( rs.getString(1)+"___");
out.println( rs.getString(2)+"___");
out.println( rs.getString(3)+"<br>");
}
stmt.close();
stmt=null;
conn.close(); conn=null;
}catch (Exception e) {
out.println("错误 !! ERR !" );
}
finally {
try {
ctx.close();
} catch (Exception e) {
out.println("ctx ERR !" ); }
try {
if (rs != null) rs.close();
} catch (Exception e) {
out.println("rs ERR !" ); }
try {
if (stmt != null) stmt.close();
} catch (Exception e) {
out.println("stmt ERR !" ); }
try {
if (conn != null) conn.close();
} catch (Exception e) {
out.println("conn ERR !" ); } }
%>
</BODY>
</HTML>