在Console中没有Worklight 6.2运行时

时间:2014-08-18 04:49:38

标签: ibm-mobilefirst

我遇到了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

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

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

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

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

  4. 登录WAS管理控制台并创建“WorklightCluster”群集。

  5. 使用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

  6. 在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 个答案:

答案 0 :(得分:2)

第一条消息&#34; ServiceProxy&gt; ServiceProxy getStatusCodeFromException ENTRY java.net.ConnectException:连接超时&#34;表示Worklight Console和Worklight管理服务之间的服务代理不起作用。以下消息可能由此产生。可能是您需要设置JNDI属性 ibm.worklight.admin.endpoint ,或者您已经设置了它但错误地设置了它。它应该设置为https://someserver.net:9080/worklightadmin(请根据您的需要更换协议,服务器和端口)。

两个提示:

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

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

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

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

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