如何将 WebLogic AdminServer 和 NodeManager 安装为 windows 服务?
How to install WebLogic AdminServer and NodeManager as windows service?
我正在尝试将 Weblogic adminserver 安装为 windows 服务,但在执行安装脚本时出现 "Input too long" 错误。
在这个问题上折腾了很久,终于找到了将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
`
通过 运行ning 这个脚本我什至无法安装 windows 服务,因为它抛出“输入太长”错误,原因是 windows 字符限制。您可能会对类路径感到困惑,并会尝试解析类路径,但是
问题是由 SetDomainEnv.txt 设置的 JAVA_OPTIONS 值造成的。
我修改了如下脚本,并在脚本中设置 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 `
即使服务已成功安装,当我启动它时,服务会立即停止并且不会打印任何日志,因为它没有连接到 AdminServer。
经过一些分析,我发现我在脚本中覆盖的 JAVA_OPTIONS 值非常需要调用 AdminServer。
我在 cmd 提示符中有 运行 SetDomainEnv.txt 并复制了三个 JAVA_OPTIONS 值。
由于该服务已经安装,我只是在 windows 服务注册表中手动复制了正确的 JAVA_OPTIONS 值 CMDLINE 参数。
服务器子系统失败。原因:一个 MultiException 有 6 个异常。
服务器安装为 Windows NT 服务,用户 weblogic 的密码不正确。自服务器作为 Windows NT 服务安装以来,密码可能已更改。联系 Windows NT 系统管理员。
注意:CMDLINE 参数中没有插入额外的空格或字符。
现在启动管理服务器所需的一切都已准备就绪。但是当我启动该服务时,它会在 adminserver.log 文件中抛出一些身份验证错误以及其他错误。
经过大量分析我发现不是认证问题,问题出在boot.properties文件上。引导。未正确读取属性文件。
这个答案是下面一个答案的延续:
经过大量分析,我发现这不是身份验证问题,问题出在 boot.properties 文件上。引导。未正确读取属性文件。
现在我会给出一些背景知识——如果融合中间件安装为开发模式,boot.properties 文件会在 Oracle_HOME\user_projects\domains\domainname\servers\AdminServer\security 中自动创建,如果你查看这个 prop 文件,你会找到密码和加密模式下的用户名。
如果融合中间件安装为生产模式,那么每次它都会询问密码和用户名。为避免这种情况,请执行以下步骤:
- 在 Oracle_HOME\user_projects\domains\domainname\servers\AdminServer\security\boot.properties 下手动创建文件,如下所述:
用户名=weblogic
密码=密码
注意:不要加空格,注意文件扩展名。
- 现在从 domain\bin\startWeblogic.cmd 启动 weblogic。这将加密您的 boot.properties 文件。检查 boot.proprties 文件是否加密,你可以开始了。
最后启动按照上述过程安装的windows服务。它应该可以正常工作。
=======================
关于节点管理器使用来自 domain\bin 的 installNodeMgrSvc。同样,如果您收到输入太长错误,则必须缩短 JAVA_OPTIONS,然后仔细编辑 windows 注册表中的 CMDLINE 参数。
我正在尝试将 Weblogic adminserver 安装为 windows 服务,但在执行安装脚本时出现 "Input too long" 错误。
在这个问题上折腾了很久,终于找到了将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
`
通过 运行ning 这个脚本我什至无法安装 windows 服务,因为它抛出“输入太长”错误,原因是 windows 字符限制。您可能会对类路径感到困惑,并会尝试解析类路径,但是 问题是由 SetDomainEnv.txt 设置的 JAVA_OPTIONS 值造成的。
我修改了如下脚本,并在脚本中设置 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 `
即使服务已成功安装,当我启动它时,服务会立即停止并且不会打印任何日志,因为它没有连接到 AdminServer。
经过一些分析,我发现我在脚本中覆盖的 JAVA_OPTIONS 值非常需要调用 AdminServer。
我在 cmd 提示符中有 运行 SetDomainEnv.txt 并复制了三个 JAVA_OPTIONS 值。
由于该服务已经安装,我只是在 windows 服务注册表中手动复制了正确的 JAVA_OPTIONS 值 CMDLINE 参数。
服务器子系统失败。原因:一个 MultiException 有 6 个异常。 服务器安装为 Windows NT 服务,用户 weblogic 的密码不正确。自服务器作为 Windows NT 服务安装以来,密码可能已更改。联系 Windows NT 系统管理员。
注意:CMDLINE 参数中没有插入额外的空格或字符。
现在启动管理服务器所需的一切都已准备就绪。但是当我启动该服务时,它会在 adminserver.log 文件中抛出一些身份验证错误以及其他错误。
经过大量分析我发现不是认证问题,问题出在boot.properties文件上。引导。未正确读取属性文件。
这个答案是下面一个答案的延续:
经过大量分析,我发现这不是身份验证问题,问题出在 boot.properties 文件上。引导。未正确读取属性文件。
现在我会给出一些背景知识——如果融合中间件安装为开发模式,boot.properties 文件会在 Oracle_HOME\user_projects\domains\domainname\servers\AdminServer\security 中自动创建,如果你查看这个 prop 文件,你会找到密码和加密模式下的用户名。 如果融合中间件安装为生产模式,那么每次它都会询问密码和用户名。为避免这种情况,请执行以下步骤:
- 在 Oracle_HOME\user_projects\domains\domainname\servers\AdminServer\security\boot.properties 下手动创建文件,如下所述:
用户名=weblogic 密码=密码
注意:不要加空格,注意文件扩展名。
- 现在从 domain\bin\startWeblogic.cmd 启动 weblogic。这将加密您的 boot.properties 文件。检查 boot.proprties 文件是否加密,你可以开始了。
最后启动按照上述过程安装的windows服务。它应该可以正常工作。
=======================
关于节点管理器使用来自 domain\bin 的 installNodeMgrSvc。同样,如果您收到输入太长错误,则必须缩短 JAVA_OPTIONS,然后仔细编辑 windows 注册表中的 CMDLINE 参数。