在RedHat OpenShift部署WebSphere Traditional后无法访问控制台及应用求助
解决OpenShift中WebSphere Traditional无法访问的SRVE0255E错误
错误原因
SRVE0255E: A WebGroup/Virtual Host to handle was-service.apps.cluster.com:80 is not being defined 是因为WebSphere默认虚拟主机未绑定OpenShift Route使用的外部域名。WebSphere的虚拟主机(如default_host)仅预设了localhost、容器主机名等别名,不包含was-service.apps.cluster.com这类外部访问域名。
解决步骤
1. 配置WebSphere虚拟主机域名别名
进入WebSphere容器内部,通过wsadmin脚本添加域名到虚拟主机:
- 进入容器终端:
oc exec -it was-traditional -- /bin/bash - 切换到wsadmin脚本目录:
cd /opt/IBM/WebSphere/AppServer/bin - 启动wsadmin交互环境:
./wsadmin.sh -lang jython - 执行以下jython脚本,将目标域名添加到
default_host的主机别名列表:# 获取default_host的配置ID vh = AdminConfig.getid('/VirtualHost:default_host/') # 获取现有主机别名 hosts = AdminConfig.showAttribute(vh, 'hostAliases') # 添加新的域名别名(包含80和9080端口) new_hosts = ['was-service.apps.cluster.com:80', 'was-service.apps.cluster.com:9080'] # 更新别名列表 updated_hosts = hosts[:-1] + new_hosts + hosts[-1:] AdminConfig.modify(vh, [['hostAliases', updated_hosts]]) # 保存配置 AdminConfig.save() - 退出wsadmin并重启WebSphere服务器:
exit ./stopServer.sh server1 && ./startServer.sh server1
2. 检查并修正Route配置
确保Route正确关联Service端口,以下是参考配置:
应用访问Route(9080端口)
apiVersion: route.openshift.io/v1 kind: Route metadata: name: was-app-route spec: host: was-service.apps.cluster.com to: kind: Service name: was-service port: targetPort: 9080
管理控制台Route(9043 HTTPS端口)
由于WebSphere管理控制台使用HTTPS,需配置证书透传:
apiVersion: route.openshift.io/v1 kind: Route metadata: name: was-admin-route spec: host: was-admin.apps.cluster.com to: kind: Service name: was-service port: targetPort: 9043 tls: termination: passthrough
3. 验证配置有效性
- 检查Service端点是否正常关联Pod:
确认oc describe service was-serviceEndpoints字段包含Pod的IP及9080、9043端口。 - 检查Pod内端口监听状态:
确保两个端口处于LISTEN状态。oc exec was-traditional -- netstat -tulpn | grep -E '9080|9043'
内容的提问来源于stack exchange,提问作者jeevan08
相关产品推荐
相关产品推荐

