我正在尝试将 Weblogic adminserver 安装为 Windows 服务,但在执行安装脚本时出现“输入太长”错误。
2 回答
我在这个问题上苦苦挣扎,终于找到了将 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
`
通过运行这个脚本,我什至无法安装 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。
经过一番分析,我发现调用 AdminServer 非常需要我在脚本中覆盖的 JAVA_OPTIONS 值。
我在 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 文件上。开机。属性文件未正确读取。
现在我要介绍一些背景知识——如果将融合中间件安装为开发模式,则会在 Oracle_HOME\user_projects\domains\domainname\servers\AdminServer\security 中自动创建 boot.properties 文件,如果您查看这个 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。同样,如果您收到 input is too long 错误,您必须缩短 JAVA_OPTIONS 然后仔细编辑 Windows 注册表中的 CMDLINE 参数。