我有一台安装了 Oracle Java 8 和 Weblogic 12 的 RHEL7 服务器。
Java 8 是使用 RedHat 的 rpm 安装的。Weblogic 是使用 Oracle 的安装包和说明安装的(Redhat 没有可用的 rpm)。在 Weblogic 安装过程中,我提供了一个符号链接路径,如JAVA_HOME
, /usr/lib/jvm/java-oracle
。安装 weblogic 时,符号链接链为:
/usr/lib/jvm/java-oracle
--> /etc/alternatives/java_sdk_oracle
--> /usr/lib/jvm/java-1.8.0-oracle-1.8.0.141-1jpp.1.el7_3.x86_64
。
我尝试通过安装 RedHat 的较新 rpm 将 Java 8 安装从更新 141 修补到更新 161。之后 Weblogic 无法启动。
经过一番研究,我发现 Weblogic 安装脚本已解析符号链接并将目标硬编码/usr/lib/jvm/java-1.8.0-oracle-1.8.0.141-1jpp.1.el7_3.x86_64
到 weblogic 安装目录下的几个配置文件中。Java 8 更新 161 安装删除了更新 141。
所以看来Java 8和Weblogic对于如何定位Java有不同的看法。
可能的解决方案:
修补 Java 后修改 Weblogic 安装中的配置文件。
修补 Java 后卸载/重新安装 Weblogic。
不要修补 java。
其他
前三个解决方案看起来都不太好。
关于在 Redhat 服务器上升级/修补 Weblogic 12 的 Java,首选方法/最佳实践是什么?还有更好的方法吗?
答案1
没有人提供答案,所以我只描述我们所做的事情。
事实证明,WebLogic 在中间件安装和域中都写下了 java 的路径。
查找包含对 java 的引用的文件:
find $MW_HOME -name commBaseEnv.sh
find $MW_HOME -name commEnv.sh
find $MW_HOME -name setNMJavaHome.sh
find $MW_HOME -name nodemanager.properties
find $DOMAIN_HOME -name setDomainEnv.sh
find $DOMAIN_HOME -name setNMJavaHome.sh
find $DOMAIN_HOME -name nodemanager.properties
MW_HOME
是中间件主页,即目录的父目录wlserver
。
DOMAIN_HOME
是您的 WebLogic 域的主目录。
然后,我们更新了获取的配置文件中的路径,并将其替换为 Oracle java RPM 创建的 java 固定位置软链接的路径。
每当创建新域或安装新版本的 WebLogic 时,我们都需要执行此操作。
我们用了本文弄清楚我们需要做什么。