首页 > 解决方案 > 如何将 WebLogic AdminServer 和 NodeManager 安装为 Windows 服务?

问题描述

我正在尝试将 Weblogic adminserver 安装为 Windows 服务,但在执行安装脚本时出现“输入太长”错误。

标签: windows-servicesweblogicnodemanager

解决方案


我在这个问题上苦苦挣扎,终于找到了将 AdminServer 和 Nodemanager 注册为 Weblogic 的 Windows 服务的方法。以下是进度所面临的步骤和问题:

要将 weblogic AdminServer 注册为 Windows 服务器,首先需要创建一个脚本,该脚本将包含诸如 oracle home、java home 等值。下面是我用来安装服务的脚本:

`

echo off 
SETLOCAL 
set MW_HOME=C:\Oracle\Middleware\Oracle_Home 
set DOMAIN_NAME=osb_domain 
set USERDOMAIN_HOME=C:\Oracle\Middleware\Oracle_Home\user_projects\domains\osb_domain 
set SERVER_NAME=AdminServer 
set WL_HOME=C:\Oracle\Middleware\Oracle_Home\wlserver 
set PRODUCTION_MODE=true 
set JAVA_OPTIONS=-Dweblogic.Stdout="%USERDOMAIN_HOME%\stdout.txt" -Dweblogic.Stderr="%USERDOMAIN_HOME%\stderr.txt" 
set WLS_USER=weblogic 
set WLS_PW=Password123 
set MEM_ARGS=-Xms1024m -Xmx1024m 
call "C:\Oracle\Middleware\Oracle_Home\user_projects\domains\osb_domain\bin\setDomainEnv.cmd" 
call "C:\Oracle\Middleware\Oracle_Home\wlserver\server\bin\installSvc.cmd" 
ENDLOCAL

`

  1. 通过运行这个脚本,我什至无法安装 Windows 服务,因为它抛出“输入太长”错误,原因是 Windows 字符限制。您可能会对类路径感到困惑,并会尝试解析类路径,但问题在于由 SetDomainEnv.txt 设置的 JAVA_OPTIONS 值造成了此问题。

  2. 我已经修改了如下脚本,并在脚本中设置 JAVA_OPTIONS 之前通过调用 SetDomainEnv.txt 命令缩短了 JAVA_OPTIONS 值。这覆盖了 JAVA_OPTIONS 的冗长值。现在我已成功将 AdminServer 安装为 Windows 服务。

`

echo off 
SETLOCAL 
set MW_HOME=C:\Oracle\Middleware\Oracle_Home 
set DOMAIN_NAME=osb_domain 
set USERDOMAIN_HOME=C:\Oracle\Middleware\Oracle_Home\user_projects\domains\osb_domain 
set SERVER_NAME=AdminServer 
set WL_HOME=C:\Oracle\Middleware\Oracle_Home\wlserver 
set PRODUCTION_MODE=true
call "C:\Oracle\Middleware\Oracle_Home\user_projects\domains\osb_domain\bin\setDomainEnv.cmd" 
set JAVA_OPTIONS=-Dweblogic.Stdout="%USERDOMAIN_HOME%\stdout.txt" -Dweblogic.Stderr="%USERDOMAIN_HOME%\stderr.txt" 
set WLS_USER=weblogic 
set WLS_PW=Password123 
set MEM_ARGS=-Xms1024m -Xmx1024m 
call "C:\Oracle\Middleware\Oracle_Home\wlserver\server\bin\installSvc.cmd" 
ENDLOCAL `
  1. 即使该服务已成功安装,当我启动它时,该服务也会立即停止并且没有打印任何日志,因为它没有连接到 AdminServer。

  2. 经过一番分析,我发现调用 AdminServer 非常需要我在脚本中覆盖的 JAVA_OPTIONS 值。

  3. 我在 cmd 提示符下运行 SetDomainEnv.txt 并复制了 JAVA_OPTIONS 值。

  4. 由于该服务已经安装,我只是在 Windows 服务注册表中手动复制了正确的 JAVA_OPTIONS 值 CMDLINE 参数。

服务器子系统失败。原因:一个 MultiException 有 6 个异常。服务器安装为 Windows NT 服务,但用户 weblogic 的密码不正确。自从服务器作为 Windows NT 服务安装后,密码可能已更改。请与 Windows NT 系统管理员联系。

注意:在 CMDLINE 参数中没有插入额外的空格或字符。

  1. 现在一切都准备好了,这实际上是启动管理服务器所需的。但是当我启动该服务时,它会在 adminserver.log 文件中与其他一些身份验证错误一起引发。

  2. 经过大量分析,我发现这不是身份验证问题,问题出在 boot.properties 文件上。开机。属性文件未正确读取。


推荐阅读