问题
I've been trying to setup an IBM Worklight environment. I want to use:
- Windows Server
- Apache Tomcat 7 (latest at the time of writing)
- IBM Worklight 6.2 (latest at the time of writing)
- MySQL Server 5.6 (latest at the time of writing)
Everything seems to be working OK. I've setup Tomcat (default configuration), MySQL (default configuration). Then I continued setting up IBM Worklight. I pointed to the Tomcat installation directory, put in the MySQL Connector/J jar file, etc etc. I left virtually everything default.
Upon completion, I deployed an app. The app was made with Eclipse, using the IBM Worklight Studio 6.2 plugin. Upon hitting the app URL (http://localhost:8080/appname/console
), I get the following error:
HTTP Status 500 - java.lang.RuntimeException: Timeout while waiting for the management service to start up
type Exception report
message java.lang.RuntimeException: Timeout while waiting for the management service to start up
description The server encountered an internal error that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: java.lang.RuntimeException: Timeout while waiting for the management service to start up
com.worklight.core.auth.impl.AuthenticationFilter.isWaitingForInitialization(AuthenticationFilter.java:561)
com.worklight.core.auth.impl.AuthenticationFilter.doFilter(AuthenticationFilter.java:130)
root cause
java.lang.RuntimeException: Timeout while waiting for the management service to start up
com.worklight.core.init.WorklightServletInitializer$1.run(WorklightServletInitializer.java:133)
java.lang.Thread.run(Unknown Source)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.54 logs.
Apache Tomcat/7.0.54
However, when I do the same install using an IBM WebSphere Liberty server, everything works fine. We do want to use Apache Tomcat instead of WebSphere Liberty.
What am I doing wrong? What's this "management service" and how can I start it or activate it? Or at least check it? Does it have something to do with JMX?
回答1:
I think JMX is not properly configured in your case. See https://www-01.ibm.com/support/knowledgecenter/SSZH4A_6.2.0/com.ibm.worklight.installconfig.doc/install_config/t_optional_config_app_server_tomcat.html
When the server starts, the Worklight runtime tries to communicate with the Worklight Admin Service through JMX. Since the start order of the web application is arbitrary, it can happen than the Worklight Admin Services start after the Worklight runtime. In this case, the Worklight runtime waits until the Worklight Admin Services are running. The timeout mentioned in the exception means that the runtime did not found the running Worklight Admin Services in a given amount of time. This can mean:
- The JMX communication failed, hence the Worklight runtime does not detect the Worklight Admin Services.
- The Worklight Admin Services crashed during startup, for instance when the Worklight Admin Database was wrongly configured.
- The JNDI property ibm.worklight.admin.environmentid may be specified differently for Worklight Runtime than for Worklight Admin Services. In this case, the Runtime cannot find its Admin Services.
See also How to solve management service not starting up in Worklight 6.2
来源:https://stackoverflow.com/questions/24509338/ibm-worklight-server-6-2-running-on-apache-tomcat-timeout-while-waiting-for