作者:王超(dev2dev论坛id:chaowang)
本文简要介绍如何在WebLogic Server 8.1下面配置虚拟主机,主要包括一下内容:
环境准备
配置虚拟主机
配置Server的默认Web应用
配置虚拟主机的Web应用
配置虚拟主机的默认Web应用
环境准备
软件平台:Windows 2000 professional + SP4、WebLogic Server 8.1 SP2
机器准备:
机器名 |
IP地址 |
用途 |
ericwang |
192.168.80.109 |
WebLogic服务器 |
test |
192.168.80.110 |
用于测试的客户端 |
WebLogic Domain配置:
名称 |
值 |
BEA Home |
C:ea |
Domain类型 |
Basic WebLogic Server Domain |
Domain Location |
C:eauser_projectsdomainsmydomain |
Server Name |
myserver |
Server 监听地址 |
192.168.80.109 |
Server 监听端口 |
7001 |
WebLogic Configuration Startup Mode |
Development mode |
myserver的用户名 |
weblogic |
myserver的口令 |
weblogic |
hosts文件:
在test机器上的C:WINNTsystem32driversetc目录下面,找到hosts文件,加入以下两行:
192.168.80.109 news.synnex-china.com
192.168.80.109 tech.synnex-china.com
配置虚拟主机
方法一(通过控制台)
在console的左边导航栏,中选择mydomain ->Services-> VirtualHosts,然后在右面点击Configure a new Virtual Host...,在Configuration的General选项卡下面,填写:
Name: news
Virtual Host Names: news.synnex-china.com
然后点击“apply”,然后到Target and Deploy 选项卡,选中myserver,点击“apply”,这样名称为news的虚拟主机就搭建成功了。
方法二(通过weblogic.Admin工具)
1、创建一个名称为news的虚拟主机,
java weblogic.Admin -url t3://192.168.80.109:7001 -username weblogic -password weblogic CREATE -name news -type VirtualHost
2、设置虚拟主机news的VirtualHostNames
java weblogic.Admin -url t3://192.168.80.109:7001 -username weblogic -password weblogic SET -mbean "mydomain:Name=news,Type=VirtualHost" -property VirtualHostNames news.synnex-china.com
3、把虚拟主机news 部属到weblogic上
java weblogic.Admin -url t3://192.168.80.109:7001 -username weblogic -password weblogic SET -mbean "mydomain:Name=news,Type=VirtualHost" -property Targets "mydomain:Name=myserver,Type=Server"
可以任取上面的方法之一,可以创建name为tech的虚拟主机,其Virtual Host Names为tech.synnex-china.com ,并将虚拟主机tech部署到WebLogic Server上。
配置完成后,重新启动WebLogic Server。
配置Server的默认Web应用
1、 参考8.1的edocs(http://edocs.bea.com/wls/docs81/index.html ),在webapps目录下面的weblogic.xml中,加入:
<context-root>/</context-root>
2、 将webapps打包成webapps.war文件,然后部属到weblogic server上,部署成功后,console中显示如下:
图1 部署webapps.war文件成功后的欢迎画面
3、在test机器上,通过浏览器访问,http://192.168.80.109:7001 ,出现如下画面,说明配置Server的默认Web应用成功。
图2 WebLogic Server默认Web应用画面
配置虚拟主机的Web应用
1、将news打包成news.war文件,然后部属到weblogic server上面的news虚拟主机上,成功后,显示如下:
图3 部署news.war文件成功后的欢迎画面
2、在test机器上,通过浏览器访问,http://news.synnex-china.com:7001/news ,出现如下画面,说明配置的虚拟主机Web应用成功。
图4 虚拟主机news的Web应用画面
配置虚拟主机的默认Web应用
1、 参考WLS8.1的edocs(http://edocs.bea.com/wls/docs81/config_xml/VirtualHost.html#DefaultWebApp),将tech目录下面的WEB-INF/weblogic.xml中加入:
<context-root>/</context-root>
然后,部署到WebLogic Server上面的tech虚拟主机上,结果如下:
图5 虚拟主机tech部署默认Web应用失败画面1
图6 虚拟主机tech部署默认Web应用失败画面2
这说明,在一个WebLogic Server只能存在一个conext-root为 / 的WEB应用。这时候,如果删去部署在WebLogic Server上的webapps的web应用,却是可以让虚拟主机tech上的默认web应用部署成功。但这不是我的本意,并且这样做,多个虚拟主机中间只能是一个虚拟主机有默认的web应用。
那如果是这样,如何配置多个虚拟主机的默认Web应用呢?
仔细分析config.xml文件元素的构成后,我决定用兼容WLS7.x的方式设置WLS8.1的虚拟主机的默认web应用。
首先把tech目录下面的WEB-INF/weblogic.xml的contxt-root项删除,然后重新部署tech应用,最后关闭WebLogic Server。手工改动config.xml文件,具体如下:
<VirtualHost Name="tech" Targets="myserver" DefaultWebApp="tech" VirtualHostNames="tech.synnex-china.com"/>
保存config.xml后,启动WebLogic Server。
2、 在test机器上,通过浏览器访问,http://tech.synnex-china.com:7001/ ,出现如下画面,说明虚拟主机的默认Web应用配置成功。
图7 虚拟主机tech默认Web应用画面
后记
1、在一个WebLogic Server只能存在一个context为 / 的web应用。
2、在WLS8.1中,不能使用weblogic.Admin工具设置虚拟主机的默认Web应用,例如:
java weblogic.Admin -url t3://192.168.80.109:7001 -username weblogic -password weblogic GET -mbean "mydomain:Name=synnex-china,Type=VirtualHost" -property DefaultWebApp synnex
由此可见DefaultWebApp选项已经逐渐被BEA淘汰。
3、可以通过weblogic.Admin工具查看虚拟主机name为news的属性
java weblogic.Admin -adminurl 192.168.80.109:7001 -username weblogic -password weblogic QUERY -pattern *:Name=news,*