首页 > 解决方案 > 如何通过 Monitored Directory Deployment 功能将 EAR 部署到 WAS 集群和 IBM HTTP 服务器

问题描述

我的目标是通过 Monitored Directory Deployment 在 WebSphere Application Server 集群中自动部署 EAR 文件。所以我的部署目标是集群。WAS 版本是 9.0.0.10。如果我将 EAR 文件放在受监视目录中,例如“/{monitored_directory_defined_in_WAS}/clusters/my_cluster_name/”,一切正常。应用程序已部署并启动。但我还想将该应用程序部署到 IBM HTTP 服务器(驻留在与集群相同的 WebSphere 单元中)中,并由 Monitored Directory Deployment 自动处理。

我尝试在deployment.xml文件中手动预定义deploymentTargets(集群和ibm http服务器),将其放入EAR文件中,并将EAR放在'/{monitored_directory_defined_in_WAS}/clusters/my_cluster_name/'中,但WAS仅在集群中部署EAR . 因此,我必须通过 WAS 控制台手动将所有模块从 EAR 映射到 ibm http 服务器,但我不想手动进行。

我的第二个想法/尝试是为 ibm http 服务器“/{monitored_directory_defined_in_WAS}/servers/my_ibm_http_server_name/”创建单独的受监控目录。首先,我将 EAR 放入“/{monitored_directory_defined_in_WAS}/clusters/my_cluster_name/”,然后立即将 EAR 放入“/{monitored_directory_defined_in_WAS}/servers/my_ibm_http_server_name/”。结果是 EAR 模块仅部署到 Web 服务器中,这不是我的目标。

WAS 监控的部署目录功能甚至可以实现这一点吗?是否允许手动创建deployment.xml 文件并将其添加到EAR 文件中?

标签: deploymentmodulemappingwebsphereear

解决方案


首先,不建议在生产环境中通过受监控的 Director 安装,因为它缺乏控制。

正如您正确怀疑的那样,无法将其安装到集群和 Web 服务器 - 请检查通过将企业应用程序文件添加到受监视目录来安装企业应用程序文件

因为您只能使用一个服务器目录,所以拖放以将应用程序映射到服务器组合是有限的。应用程序文件的直接拖放不支持需要使用多个服务器的场景,例如映射到应用程序服务器和 Web 服务器。

但是,您仍然想使用它,您可以将属性文件部署到监控目录中。该属性文件可以完全自定义您的部署,例如配置模块以映射到 Web 服务器。

检查通过将属性文件添加到受监视目录来安装企业应用程序文件以获取更多详细信息

更新

如果您有问题,我建议您采用以下方法 - 通过管理控制台“经典”安装您的应用程序并将其映射到 Web 服务器和集群。然后运行wsadmin命令提取属性:

AdminTask.extractConfigProperties('[-propertiesFileName myApp.props -configData Deployment=MyApplication -options [[SimpleOutputFormat true]]]')

尝试使用该导出文件中的格式作为您的属性

我有时间在我的环境中运行它。我有一个应用程序,里面有 2 个模块,一个模块只是映射到集群,另一个映射到集群和 Web 服务器。这是属性文件的相关部分:

taskName=MapModulesToServers
row1={ module=HelloTestUI  #readonly
       uri=HelloTestUI.war,WEB-INF/web.xml  #readonly
       server=WebSphere:cell=!{cellName},cluster=!{clusterName} }
row0={ module=HelloTestWeb  #readonly
       uri=HelloTestWeb.war,WEB-INF/web.xml  #readonly
       server=WebSphere:cell=!{cellName},cluster=!{clusterName}+WebSphere:cell=!{cellName},node=!{nodeName},server=!{serverName} }

我没有尝试使用该属性文件通过受监控的目录部署应用程序,但正如您所见,已创建条目并通过+连接集群和 Web 服务器的标志完成映射。

如果您没有看到到 Web 服务器的映射,请确保您保存了在控制台中所做的更改,然后通过 wsadmin 连接,否则 wsadmin 将没有当前数据。


推荐阅读