控制台中没有 Worklight 6.2 运行时

Posted

技术标签:

【中文标题】控制台中没有 Worklight 6.2 运行时【英文标题】:No Worklight 6.2 Runtime in Console 【发布时间】:2014-08-18 04:49:37 【问题描述】:

我在使用 WL 6.2 时遇到了一个奇怪的行为。 WL 控制台未列出 AIX 环境中任何已安装的应用程序/战争(运行时)。我在两个不同的平台上设置了 Worklight 6.2:

Platform: Linux (Ubuntu)
WebSphere ND 8.5.5.1
DB2 V9.7

Platform: AIX
WebSphere ND 8.5.5.1
Oracle 11g

两个平台都通过简单的基于文件的注册表(使用联合存储库)启用了 WAS 全局安全性。两者都以相同的方式使用以下步骤进行配置。在 Ubuntu 中,我可以看到已安装的运行时 (WorklightStarter WAR)。但是在 AIX 中,我在 WL 控制台中看到了可怕的消息:“服务器错误。请联系服务器管理员”

我使用 WorklightStarter App 来测试我的 Ubuntu 和 AIX 安装。具体来说,我使用了没有 JS 框架的 WorklightStarter 应用程序。将其导入 WL 6.2 Studio 以构建用于部署的 WAR 文件。

然后我按照简化的installation/configuration steps:

    手动创建数据库,a) wladmin b) wrklght c) wlreports。我按照上述说明的“手动创建 DB2 数据库”和“手动创建 Oracle 数据库”部分中列出的说明在 Ubuntu(Linux) 和 AIX 环境中配置数据库:

    已配置全局安全性,因此管理控制台访问是安全的。使用了基于文件的注册表和联合存储库。

    从命令行安装了 WL 6.2 服务器二进制文件(使用 Installation Manager 1.6.x installc 命令)。

    ./installc -acceptLicense -log /tmp/im_install.log

    登录 WAS Admin Console 并创建“WorklightCluster”集群。

    使用 ANT 任务将 a) worklight 控制台 + 管理服务 b) WorklightStarter WAR 部署到步骤 4 中创建的 WAS 集群。

    以下命令成功:

    /opt/ibm/worklight/62/shortcuts/ant -f /opt/ibm/worklight/62/WorklightServer/configuration-samples/configure-wasnd-cluster-oracle_custom.xml databases

    /opt/ibm/worklight/62/shortcuts/ant -f /opt/ibm/worklight/62/WorklightServer/configuration-samples/configure-wasnd-cluster-oracle_custom.xml admdatabases

    /opt/ibm/worklight/62/shortcuts/ant -f /opt/ibm/worklight/62/WorklightServer/configuration-samples/configure-wasnd-cluster-oracle_custom.xml adminstall

    /opt/ibm/worklight/62/shortcuts/ant -f /opt/ibm/worklight//62/WorklightServer/configuration-samples/configure-wasnd-cluster-oracle_custom.xml install

在 AIX 中,到目前为止,安装后一切正常。我能够在 WAS 集群中启动 WAR(worklight 控制台、管理服务和 worklight 启动器)。 SystemOut.log 中未报告任何启动错误。登录 AIX 控制台最终显示“服务器错误。请联系服务器管理员”。所以我查看了 Chrome 控制台日志,当 WL 控制台调用 REST URI 时,它显示 500 内部服务器错误:

/worklightconsole/services/management-apis/1.0/loginAudit?_=1408335538793
/worklightconsole/services/management-apis/1.0/runtimes/?_=1408335559099

因此,为了在 AIX 中进一步调试,我继续在 WAS ND 中为 worklight 服务器打开了一些跟踪。由于我不知道要打开哪个跟踪规范以使 Worklight WAR 吐出更多消息,因此我不得不盲目地打开大多数 WebSphere 跟踪:

*=info: com.ibm.ws.*=all: com.ibm.worklight.*=all: com.ibm.websphere.*=all

这最终表明 Worklight(或者可能是 WAS)中的某些组件出现故障。我不知道它是哪个组件或为什么会发生。

[8/16/14 4:32:50:106 EDT] 000000c6 ServiceProxy  > ServiceProxy getStatusCodeFromException ENTRY java.net.ConnectException: Connection timed out
[8/16/14 4:32:50:106 EDT] 000000f0 SRTServletRes 1 com.ibm.ws.webcontainer.srt.SRTServletResponse getRequestrequest=com.ibm.ws.webcontainer.srt.SRTServletRequest@62121da3 [com.ibm.ws.webcontainer.srt.SRTServletResponse@c3342c0f]
[8/16/14 4:32:50:106 EDT] 000000c6 ServiceProxy  < ServiceProxy getStatusCodeFromException RETURN
[8/16/14 4:32:50:106 EDT] 000000f0 SRTServletReq 1 com.ibm.ws.webcontainer.srt.SRTServletRequest getWebAppDispatcherContext
[8/16/14 4:32:50:106 EDT] 000000c6 SRTServletRes > com.ibm.ws.webcontainer.srt.SRTServletResponse setStatus ENTRY  status --> 500 [com.ibm.ws.webcontainer.srt.SRTServletResponse@f3808481]
[8/16/14 4:32:50:106 EDT] 000000f0 SRTServletRes 1 com.ibm.ws.webcontainer.srt.SRTServletResponse isCommitted false [com.ibm.ws.webcontainer.srt.SRTServletResponse@c3342c0f]
[8/16/14 4:32:50:106 EDT] 000000c6 SRTServletRes 1 com.ibm.ws.webcontainer.srt.SRTServletResponse getRequest request=com.ibm.ws.webcontainer.srt.SRTServletRequest@f4847ba7 [com.ibm.ws.webcontainer.srt.SRTServletResponse@f3808481]
[8/16/14 4:32:50:106 EDT] 000000f0 HttpResponseM 1   setStatusCode(sc): Status code: 500
[8/16/14 4:32:50:106 EDT] 000000c6 SRTServletReq 1 com.ibm.ws.webcontainer.srt.SRTServletRequest getWebAppDispatcherContext
[8/16/14 4:32:50:106 EDT] 000000f0 SRTServletRes < com.ibm.ws.webcontainer.srt.SRTServletResponse setStatus RETURN
[8/16/14 4:32:50:106 EDT] 000000c6 SRTServletRes 1 com.ibm.ws.webcontainer.srt.SRTServletResponse isCommitted false [com.ibm.ws.webcontainer.srt.SRTServletResponse@f3808481]
[8/16/14 4:32:50:106 EDT] 000000f0 SRTServletRes > com.ibm.ws.webcontainer.srt.SRTServletResponse addHeader ENTRY name --> com.worklight.admin.error with value --> Connection timed out [com.ibm.ws.webcontainer.srt.SRTServletResponse@c3342c0f]
[8/16/14 4:32:50:106 EDT] 000000c6 HttpResponseM 1   setStatusCode(sc): Status code: 500
[8/16/14 4:32:50:106 EDT] 000000f0 SRTServletRes 1 com.ibm.ws.webcontainer.srt.SRTServletResponse getRequest request=com.ibm.ws.webcontainer.srt.SRTServletRequest@62121da3 [com.ibm.ws.webcontainer.srt.SRTServletResponse@c3342c0f]

任何帮助进一步调试此问题将不胜感激。

【问题讨论】:

【参考方案1】:

第一条消息“ServiceProxy > ServiceProxy getStatusCodeFromException ENTRY java.net.ConnectException: Connection timed out”表示Worklight Console 和Worklight 管理服务之间的服务代理不起作用。以下消息可能由此产生。可能是您需要设置 JNDI 属性 ibm.worklight.admin.endpoint,或者您已经设置但错误。应该设置为https://someserver.net:9080/worklightadmin之类的东西(请根据需要替换协议、服务器和端口)。

两个提示:

    如何找到 ibm.worklight.admin.endpoint 的正确值?在您的浏览器中,输入,说:

    https://myserver.net:9080/worklightadmin/userAndConfigInfo

    (请修改协议、主机和端口)。如果这要求输入用户名和密码,然后显示一些 JSON 字符串,那么终点就是这个地址,不包括“userAndConfigInfo”(在这个例子中是:https://myserver.net:9080/worklightadmin)。如果这返回连接超时或任何其他错误,那么您输入了错误的值,您需要验证您的服务器配置以找到正确的值。

    这个服务代理是什么?浏览器首先将所有 REST 请求发送到 Worklight Console Web 应用程序,然后将它们重定向到 Worklight 管理服务 Web 应用程序。这有技术原因,因为它改进了身份验证行为和错误消息。

    可以通过将 JNDI 属性 ibm.worklight.admin.ui.cors 设置为 false 来禁用服务代理。在这种情况下,浏览器将 REST 请求直接发送到 Worklight 管理服务。您仍然需要正确设置 ibm.worklight.admin.endpoint,否则您仍然会遇到连接超时。

【讨论】:

嗨,乔治。非常感谢您的回复。我验证了 myserver.net:9080/worklightadmin/userAndConfigInfo 返回一个 json 字符串。但是 myserver.net:9080/worklightadmin 什么也不返回或不返回任何值。我需要在哪里设置正确的值?我检查了 Worklight_Administration_Console_runtime1 的 JNDI 属性,并且 ibm.worklight.admin.endpoint 设置为 *://*:*/worklightadmin跨度> 嗨,乔治。在 Worklight_Administration_Console_runtime1 JNDI 属性中将 ibm.worklight.admin.ui.cors 设置为 false 后,我能够看到 WorklightStarter 运行时。所以它似乎正在工作。但是,我想问一下,将这个JNDI属性设置为false有什么影响?在生产环境中使用是否安全?如果我们能解决连接超时的根本原因,那就更好了。 嗨:我想提供一些更新。我设置 WL 6.2 的 AIX 平台位于代理后面(NAT 代理,而不是真正的基于 HTTP 的代理)。我用来从浏览器访问 WL 6.2 控制台的 IP 地址与 AIX 机器的真实 IP 地址不同。因此,将 Worklight_Administration_Console_runtime1 中的 ibm.worklight.admin.endpoint 更改为指向 AIX 机器的内部 IP 地址后,一切正常。我不再需要更改 ibm.worklight.admin.ui.cors 的值。再次感谢您提供解决此问题的有用提示。

以上是关于控制台中没有 Worklight 6.2 运行时的主要内容,如果未能解决你的问题,请参考以下文章

安装分析后,我的 Worklight 6.2 控制台上没有运行时

手动安装 Worklight 服务器并声明 Worklight 运行时 (WL 6.2)

eclipse worklight studio 6.2:以工作灯控制台中的错误开始 IPAS 不存在

Worklight 6.2 使用 OpenDS 对 LDAP 进行身份验证

IBM Worklight 6.2 无法设置状态。响应已提交

IBM Worklight 6.2 ChallengeHandler submitFailure:未按预期运行