关于9080端口和80端口实现真正意义的WebServer+ApplicationServer结合应用
网上论坛关于IBM Http Server(简称IHS)与Websphere Application Server(简称WAS)联合使用,即通过IHS的80端口间接访问WAS的动态web(jsp,servlet,javabean)、EJB(Enterprise Javabean)9080端口的应用讨论得比较多,有的朋友为此熬夜奋战险些抓狂,其实没那么可怕,经过我反复修改httpd.conf、重起IHS和WAS上百次的经验,得出了一点点经验,希望能给其他刚刚接触was的人一些借鉴(有什么错误大家补充说明吧)。原理不说了,因为冰雪和其它大侠已经在其它帖子中讲得很透彻了。
导致80端口只能访问静态页面而不能将请求传递给was的9080端口的原因一般有以下几种情况:
1、版本的问题:
比如我就犯过的一个错误,只安装was5企业版,结果在was安装目录下:某盘符/WebSphere/AppServer/bin/mod_ibm_app_server_http.dll死活没有mod_ibm_app_server_http.dll,问冰雪才知道原来安装有问题。
今天下午我又找到was5.1安装就没有这个问题了,因为自定义安装时有一个重要选项是: Plug-in(插件) For IBM HTTP Server ,没有这一项休想让was和ihs结合起来,因为你没有mod_ibm_app_server_http.dll模块
2、httpd.conf不要轻易乱修改:
在不明白apache的httpd.conf如何修改的情况下千万不要随意修改(我测试成功那次一个字都没修改)。
提前说明我操作的步骤:
在安装was5.1后,再安装ihs1.3.28,启动IBM HTTP ADMINISTRATOR和IBM HTTP SERVER后,开始进入ihs管理页面,根据提示在dos窗口下建立了一个管理用户,千万别自做主张进入ihs管理界面增删模块,千万不要。
启动was管理控制台,进入将默认应用停止卸载(我就留下一个应用),部署你的应用(比如从tomcat那边调试好的应用,使用wsad或AAT打包),启动后测试一下9080端口访问是否正常,然后在管理控制台下:环境---更新web服务器插件---确定,重新启动ihs,你自然在ihs的httpd.conf文件最后看到这两行(自动添加的,根本无须手动加入):
LoadModule ibm_app_server_http_module “安装盘符/WebSphere/AppServer/bin/mod_ibm_app_server_http.dll"
WebSpherePluginConfig "安装盘符/WebSphere/AppServer/config/cells/plugin-cfg.xml"
没有上面这两行??那就想想是不是版本的问题,是不是没有:was安装盘符/WebSphere/AppServer/bin/mod_ibm_app_server_http.dll
此时就不要再设置什么侦听端口、虚拟目录和虚拟机在这里果乱了,不然稍有错误就很容易导致ihs启动不起来(看见ihs出现启动内部错误就出冷汗)
3、打包的时候需要注意哪些问题?
IBM打包工具wsad和ATT都挺好用的(唉,赶上好的时候,没用过其它工具),也没有什么特殊的设置,基本上在tomcat上能正常运行,在was上就没什么问题(一定要设置好环境变量,进入was管理控制台----资源----jdbc提供程序---我用的SQLServer2000,类路径里面填写C:/j2sdk/lib/msbase.jar
C:/j2sdk/lib/mssqlserver.jar
C:/j2sdk/lib/msutil.jar
就完成了,如果你在此设置数据源和连接池使用起来更为简洁),打包时一般设置都很灵活,随意就行,如果想打一个ear也行,打一个war也行。在was中部署的时候上下文根也很随意,如果填入 / 代表直接指向你的应用文件夹(也许就是你的网站根目录),如果不放心,还可以用ATT(was5.0的WebSphere/AppServer/bin目录下有ATT工具:assembly.bat)打开查看一个(比如修改一下默认主页,起不启动文件服务好像也没什么影响)
以上是几天来轮番熬夜查看论坛、开启三台服务器分别安装不同版本,反复修改,重启服务,再修改得出的一点体会,得到了冰雪等大侠的大力帮助,非常感谢,因为我是新手,还请大家帮我把说得不准确或有错误的地方更正过来。谢谢,谢谢所有的朋友和老师。
成功的表现:http://serverIP:9080/applicationName/HomePage.jsp能访问动态页面
http://serverIP/applicationName/HomePage.jsp也能访问动态页面(IHS和WAS结合)
http://serverIP/可以访问IHS管理控制台
修改httpd.conf建立虚拟目录后通过http://serverIP/虚拟目录 又可以像单独使用Apache一样访问到静态内容,一石二鸟一举两得,达到了最终目的!
billyyu 于 2005-3-10下午3:12
我这边是与IIS终于整合成功,过两天也把帖子奉上^_^
不过,这两天出了一个新问题,郁闷至极。以前配了好几台服务器,在设置全局安全性的时候都没有问题,现在怎么都配不上(这哪行,谁都可以用控制台了)
我的步骤是这样:
1)添加本地OS的用户,也就是管理员administrator
2)启用“全局安全性”,可就是这时怎么都报“administrator认证失败,请再试一次……” nnd,试N次都是失败!!!
以前从未出过这种问题,WAS的安装盘没变,系统也没变!!
唯一不同的是这次因为客户主机是托管到互联网上,所以打了N多win2000的补丁!
请各位大虾指教!!没有设好这个,后面的我都没有兴趣GO ON了
zhanghanbing 于 2005-3-11下午11:38
启用WAS全局安全性的方法还是billyyu手把手教我的,不过他说的这种问题没碰到过,
请高手指点
推荐一个好的地方,这里有很多资深IBM专家(至少他们有各种IBM正版软件,真是羡慕死了),他们能解决 非常规 问题:
http://www-900.ibm.com/cn/support/forum/app/tscforum/list?areaid=06&categoryid=15
zhanghanbing 于 2005-3-12上午4:58
WAS部署的时候JSP预编译不要轻易选择,不然部署可能出现问题。
那么,如何可以让WAS进行jsp预编译呢?
方法如下:打开WSAD---web项目(你已经设计好的J2EE web项目)----WEB-INF------WEB.xml,更改web.xml时有很多可以更改的,比如应用的首页等,在扩展里选择“预编译”。导出web项目为一个war文件
进入was管理控制台,上下文目录填入/ApplicationName,下一步(其它选项随便),选择预编译jsp,其它步骤略,启动这个应用。
好了,你可以通过下面的方式访问了:
http://serverIP:9080/applicationName/HomePage.jsp能访问动态页面
http://serverIP/applicationName/HomePage.jsp也能访问动态页面