关于9080端口和80端口实现真正意义的WebServer+ApplicationServer结合应用

关于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也能访问动态页面

上一篇:见到了“公司”定义一个Company类,那么见到了“字段”是不是也可定义一个Column类?


下一篇:Centos 7防火墙firewalld开放80端口