【问题标题】:wsadmin adminApp.update java.net.UnknownHostException Full-Qualified-Hostnamewsadmin adminApp.update java.net.UnknownHostException Full-Qualified-Hostname
【发布时间】:2017-03-29 16:41:44
【问题描述】:

尝试通过 SOAP 连接将 EAR 文件部署到 WebSphere 企业应用程序。

命令行:

call wsadmin -conntype SOAP -host %WAS_HOST% -port %WAS_PORT% -user %WAS_USER% -password !WAS_PASSWORD! -lang jython -c "AdminApp.update('%APP_NAME%', 'app', '[ -operation update -contents %EAR_FILE% -usedefaultbindings -defaultbinding.virtual.host default_host -nopreCompileJSPs -installed.ear.destination $(APP_INSTALL_ROOT)/%WAS_HOST%Network -distributeApp -nouseMetaDataFromBinary -nodeployejb -createMBeansForResources -noreloadEnabled -deployws -validateinstall warn -noprocessEmbeddedConfig -filepermission .*\.dll=755#.*\.so=755#.*\.a=755#.*\.sl=755 -noallowDispatchRemoteInclude -noallowServiceRemoteInclude -asyncRequestDispatchType DISABLED -nouseAutoLink -MapModulesToServers [[ %MODULE_NAME% %WAR_FILE%,WEB-INF/web.xml WebSphere:cell=%WAS_HOST%Network,cluster=%CLUSTER%+WebSphere:cell=%WAS_HOST%Network,node=%WEB_NODE%,server=%WEB_NODE% ]]]' )"

从 Windows 上的构建机器发出。其中WAS_HOST=MySrvrA.mycomp.com

当运行这个命令时,我得到了

WASX7209I:使用 SOAP 连接器连接到节点 eagnmncom0cbbManager 上的进程“dmgr”;进程类型为:DeploymentManager WASX7015E: 异常运行命令:“AdminApp.update ...
....
异常信息: com.ibm.websphere.management.filetransfer.client.TransferFailedException java.net.UnknownHostException: java.net.UnknownHostException: MySrvrA

WebSphere App 服务器在 Linux 上,/etc/hosts 文件包含以下内容:

IP-Address Full-Qualified-Hostname Short-Hostname

#

127.0.0.1 本地主机

特殊 IPv6 地址 ::1 localhost ipv6-localhost ipv6-loopback

fe00::0 ipv6-localnet

ff00::0 ipv6-mcastprefix ff02::1 ipv6-allnodes ff02::2 ipv6-allrouters ff02::3 ipv6-allhosts

56.xxx.xxx.xxx MySrvrA.mycomp.com MySrvrA

只能通过全限定主机名通过 Internet 访问此服务器。

为了解决问题,我有

1) 运行命令

call wsadmin -conntype SOAP -host %WAS_HOST% -port %WAS_PORT% -user %WAS_USER% -password !WAS_PASSWORD! -lang jython -c "print Help.help()"

这行得通,它应该证明从构建机器到 WAS 服务器的连接良好。

2) 为了进一步证明 AdminApp.update 及其解析参数有效,我已经完整运行了 AppAdmin.update:

AdminApp.update('%APP_NAME%', 'app', '[ -operation update -contents %EAR_FILE% -usedefaultbindings -defaultbinding.virtual.host default_host -nopreCompileJSPs -installed.ear.destination $(APP_INSTALL_ROOT)/%WAS_HOST%Network -distributeApp -nouseMetaDataFromBinary -nodeployejb -createMBeansForResources -noreloadEnabled -deployws -validateinstall warn -noprocessEmbeddedConfig -filepermission .*\.dll=755#.*\.so=755#.*\.a=755#.*\.sl=755 -noallowDispatchRemoteInclude -noallowServiceRemoteInclude -asyncRequestDispatchType DISABLED -nouseAutoLink -MapModulesToServers [[ %MODULE_NAME% %WAR_FILE%,WEB-INF/web.xml WebSphere:cell=%WAS_HOST%Network,cluster=%CLUSTER%+WebSphere:cell=%WAS_HOST%Network,node=%WEB_NODE%,server=%WEB_NODE% ]]]' )

直接在 WAS 服务器上。它可以工作,并且应该证明 AdminApp.update 及其选项和参数是好的。

在我看来,在 SOAP 部署中,AdminApp.update 截断了 WAS_HOST 并且不使用 Full-Qualified-Hostname。

我做错了什么,我该如何解决?

我有另一台机器可以通过短主机名从 Internet 访问,相同的命令行可以在 SOAP 连接器上完美运行。

【问题讨论】:

    标签: soap deployment websphere


    【解决方案1】:

    原来是安全限制导致了这个问题。

    目标WAS服务器在DMZ .com,而构建机器在蓝色.xxx,根据组织的安全策略,不允许从.xxx到.com的文件传输。

    将目标WAS服务器添加到构建机器的C:\Windows\System32\Drivers\etc\hosts后,部署成功。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-25
      • 2019-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-30
      • 1970-01-01
      相关资源
      最近更新 更多