技术开发 频道

也谈websphere的9080端口

【IT168 技术文档】
关于websphere的9080端口和Apache(IHS)的80端口实现真正意义的Application Server+Web Server结合应用(适合那些想初步了解三层架构的同仁们查阅)

经过一个多月的摸索,我基本明白了websphere的9080端口和IHS(或者apache)的80端口的配合的原理和操作步骤。查看具体操作步骤:http://www.onhour.com/java/abnerchai.htm
(那篇文章是abnerchai写的,很经典)

写这篇文章的时候是2005年3月份,终于又有机会在北大软件学院修改此文章了。可以作为abnerchai的文章的补充。

我的机器配置:winserver2000、websphere5.0企业版、IHS1.3.26,但后来发现我的was安装目录下的bin目录下没有下面这个模块文件:mod_ibm_app_server_http.dll,IBM专家告诉我是因为WAS企业版的安装顺序不对。应该先安装WAS Base再在上面加装企业版。

网上论坛关于IBM Http Server(简称IHS)与Websphere Application Server(简称WAS)联合使用,即通过IHS的80端口(间接)访问WAS的动态web、EJB(jsp,servlet,javabean)9080 端口的应用讨论得比较多,有的朋友为此熬夜奋战险些抓狂,经过我反复修改httpd.conf、重起IHS和WAS很多次的经验,得出了一点点收获,希望能给其他刚刚接触was的人一些借鉴(有什么错误大家补充说明吧)。原理不说了,因为冰雪和其它大侠已经在其它帖子中讲得很透彻了。

导致80端口只能访问静态页面而不能将请求传递给websphere的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结合起来。

2、httpd.conf修改的问题:
apache或者IHS是比较“脆弱”的,在不明白apache的httpd.conf如何修改的情况下千万不要随意修改(我成功实现apache<IHS>和websphere结合的那次一个字都没修改过),我操作的步骤是这样的:
(1)在安装was5.1后,再安装ihs1.3.28,启动IBM HTTP ADMINISTRATOR和IBM HTTP SERVER后,开始进入ihs管理页面,根据提示在dos窗口下建立了一个管理用户,千万别自做主张进入IHS管理界面增删模块,千万不要。
(2)启动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启动出现内部错误就出冷汗,那时的我太郁闷了),如果你觉得IHS图形化界面并不好用,建议可以使用Apache2代替,感觉Apache更稳定一些。

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://127.0.0.1/my_application.jsp还是http://127.0.0.1/指定上下文/my_application.jsp,没关系,不知道原理就用穷举法^_^

以上是几天来开启三台服务器分别安装不同版本,反复修改配置,重启服务,再修改配置得出的一点体会,得到了冰雪等IBM大侠的大力帮助,非常感谢,还请大家帮我把说得不准确或有错误的地方更正过来。谢谢,谢谢所有的朋友和老师。

事实上,实现websphere(甚至TOMCAT或者Resin)和IIS(apache)的配合也基本类似,只要在配置的时候仔细认真,不在没有明白原理的时候胡乱设置,从简到繁,一步一步设置,就一定能成功。
0
相关文章