This one has me beat, I've looked around at a lot of other posts/questions both on Stack Overflow and elsewhere, as well as spoken to some IBMers who don't know the cause either.
I have set up a MobileFirst Platform Server in a VM as per the instructions in the knowledge centre for v7.0 "Tutorial for a basic installation of MobileFirst Server" (using DB2 as the Database). I have followed every step, yet at step #9, the Operations Console does not actually show the runtime as I would expect. This means I am unable to deploy the adapters etc. to be able to test the app properly on a physical device. (Eventually this VM will have public IP exposure so we can use/demo the application on any internet connection).
The application Center etc. deployed to the server is working fine and I have been able to connect my phone and tablet to it to download the deployed APKs and install them fine. It's just this runtime issue that's not working.
There are a few messages in the logs, that based on my research indicate errors that can either be ignored, or that were already fixed in 6.3. I'd love for someone to be able to shed some light on what's causing the issue, this is driving a few of us bananas. We believe it may be something to do with a JMX or SSLSocket error but cannot actually figure out the exact cause or how to rectify it (as we're not using ssl at all that we know of).
Screenshot of The Server Conf Tool http://www.files.interestingmix.com.au/stack/mfps_servconf_runtime.png
Screenshot of The Operations Console http://www.files.interestingmix.com.au/stack/mfps_opscons_noruntime.png
(The following server logs were cleansed before the "server start simpleserver" operation)
Extract from messages.log
E FWLSE0320E: Failed to check whether the admin services are ready. Caused by: [project worklight]
java.net.SocketException: java.lang.ClassNotFoundException: Cannot find the specified class com.ibm.websphere.ssl.protocol.SSLSocketFactory
at javax.net.ssl.DefaultSSLSocketFactory.a(SSLSocketFactory.java:2)
at javax.net.ssl.DefaultSSLSocketFactory.createSocket(SSLSocketFactory.java:9)
at com.ibm.net.ssl.www2.protocol.https.c.createSocket(c.java:145)
at sun.net.NetworkClient.doConnect(NetworkClient.java:174)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:407)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:502)
at com.ibm.net.ssl.www2.protocol.https.c.<init>(c.java:103)
at com.ibm.net.ssl.www2.protocol.https.c.a(c.java:25)
at com.ibm.net.ssl.www2.protocol.https.d.getNewHttpClient(d.java:20)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:943)
at com.ibm.net.ssl.www2.protocol.https.d.connect(d.java:11)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1311)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:479)
at com.ibm.net.ssl.www2.protocol.https.b.getResponseCode(b.java:63)
at com.ibm.ws.jmx.connector.client.rest.internal.RESTMBeanServerConnection.loadJMXServerInfo(RESTMBeanServerConnection.java:240)
at com.ibm.ws.jmx.connector.client.rest.internal.RESTMBeanServerConnection.<init>(RESTMBeanServerConnection.java:161)
at com.ibm.ws.jmx.connector.client.rest.internal.Connector.connect(Connector.java:371)
at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:278)
at com.worklight.common.util.jmx.LibertyRuntimeMBeanHandler.getMBeanServerConnection(LibertyRuntimeMBeanHandler.java:84)
at com.worklight.common.util.jmx.MBeanConnectorFactory.getLocalMBeanProxy(MBeanConnectorFactory.java:139)
at com.worklight.core.jmx.ProjectSynchronizationBean.isReady(ProjectSynchronizationBean.java:126)
at com.worklight.core.init.WorklightServletInitializer$1.run(WorklightServletInitializer.java:140)
at java.lang.Thread.run(Thread.java:780)
Caused by: java.lang.ClassNotFoundException: Cannot find the specified class com.ibm.websphere.ssl.protocol.SSLSocketFactory
at javax.net.ssl.SSLJsseUtil.b(SSLJsseUtil.java:147)
at javax.net.ssl.SSLSocketFactory.getDefault(SSLSocketFactory.java:8)
at javax.net.ssl.HttpsURLConnection.getDefaultSSLSocketFactory(HttpsURLConnection.java:3)
at javax.net.ssl.HttpsURLConnection.<init>(HttpsURLConnection.java:19)
at com.ibm.net.ssl.www2.protocol.https.b.<init>(b.java:94)
at com.ibm.net.ssl.www2.protocol.https.Handler.openConnection(Handler.java:3)
at com.ibm.net.ssl.www2.protocol.https.Handler.openConnection(Handler.java:8)
at java.net.URL.openConnection(URL.java:983)
at com.ibm.ws.jmx.connector.client.rest.internal.RESTMBeanServerConnection.getBasicConnection(RESTMBeanServerConnection.java:1835)
at com.ibm.ws.jmx.connector.client.rest.internal.RESTMBeanServerConnection.getConnection(RESTMBeanServerConnection.java:1923)
at com.ibm.ws.jmx.connector.client.rest.internal.RESTMBeanServerConnection.getConnection(RESTMBeanServerConnection.java:1896)
at com.ibm.ws.jmx.connector.client.rest.internal.RESTMBeanServerConnection.getConnection(RESTMBeanServerConnection.java:1892)
at com.ibm.ws.jmx.connector.client.rest.internal.RESTMBeanServerConnection.loadJMXServerInfo(RESTMBeanServerConnection.java:231)
at com.ibm.ws.jmx.connector.client.rest.internal.RESTMBeanServerConnection.<init>(RESTMBeanServerConnection.java:155)
at com.ibm.ws.jmx.connector.client.rest.internal.Connector.connect(Connector.java:371)
at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:278)
at com.worklight.common.util.jmx.LibertyRuntimeMBeanHandler.getMBeanServerConnection(LibertyRuntimeMBeanHandler.java:84)
at com.worklight.common.util.jmx.MBeanConnectorFactory.getLocalMBeanProxy(MBeanConnectorFactory.java:139)
at com.worklight.core.jmx.ProjectSynchronizationBean.isReady(ProjectSynchronizationBean.java:126)
at com.worklight.core.init.WorklightServletInitializer.initialize(WorklightServletInitializer.java:101)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:613)
at com.worklight.server.bundle.project.JeeProjectActivator$1.run(JeeProjectActivator.java:227)
at com.worklight.server.bundle.project.JeeProjectActivator.contextInitialized(JeeProjectActivator.java:268)
at com.ibm.ws.webcontainer.webapp.WebApp.notifyServletContextCreated(WebApp.java:2374)
at com.ibm.ws.webcontainer.webapp.WebApp.initialize(WebApp.java:1044)
at com.ibm.ws.webcontainer.webapp.WebApp.initialize(WebApp.java:6342)
at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost.startWebApp(DynamicVirtualHost.java:446)
at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost.startWebApplication(DynamicVirtualHost.java:441)
at com.ibm.ws.webcontainer.osgi.WebContainer.startWebApplication(WebContainer.java:761)
at com.ibm.ws.webcontainer.osgi.WebContainer.startModule(WebContainer.java:739)
at com.ibm.ws.app.manager.web.internal.WebModuleHandlerImpl.deployModule(WebModuleHandlerImpl.java:106)
at com.ibm.ws.app.manager.module.internal.DeployedAppInfoBase.deployModule(DeployedAppInfoBase.java:538)
at com.ibm.ws.app.manager.module.internal.DeployedAppInfoBase.deployModules(DeployedAppInfoBase.java:457)
at com.ibm.ws.app.manager.module.internal.DeployedAppInfoBase.deployApp(DeployedAppInfoBase.java:411)
at com.ibm.ws.app.manager.war.internal.WARApplicationHandlerImpl.install(WARApplicationHandlerImpl.java:73)
at com.ibm.ws.app.manager.internal.statemachine.StartAction.execute(StartAction.java:139)
at com.ibm.ws.app.manager.internal.statemachine.ApplicationStateMachineImpl.enterState(ApplicationStateMachineImpl.java:1166)
at com.ibm.ws.app.manager.internal.statemachine.ApplicationStateMachineImpl.run(ApplicationStateMachineImpl.java:779)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:626)
... 1 more
[3/26/15 14:20:44:058 EST] 00000045 SystemErr R Exception in thread "Initialization thread for Worklight runtime worklight"
[3/26/15 14:20:44:058 EST] 00000045 SystemErr R java.lang.RuntimeException: Timeout while waiting for the management service to start up.120 secs.
[3/26/15 14:20:44:060 EST] 00000045 SystemErr R at com.worklight.core.init.WorklightServletInitializer$1.run(WorklightServletInitializer.java:144)
[3/26/15 14:20:44:061 EST] 00000045 SystemErr R at java.lang.Thread.run(Thread.java:780)
[3/26/15 14:22:45:591 EST] 0000004d com.ibm.worklight.admin.common.util.ContextPropertyUtil I Resource conf/jndi/default.properties not found. This is not an error. Context path is /worklightconsole
[3/26/15 14:22:46:078 EST] 0000005a SystemErr R 249960 WorklightManagementPU-db2 INFO [LargeThreadPool-thread-32] openjpa.Runtime - Starting OpenJPA 1.2.2
[3/26/15 14:22:46:084 EST] 0000005a SystemErr R 249966 WorklightManagementPU-db2 INFO [LargeThreadPool-thread-32] openjpa.jdbc.JDBC - Using dictionary class "org.apache.openjpa.jdbc.sql.DB2Dictionary" (DB2/LINUXX8664 SQL10053 ,IBM Data Server Driver for JDBC and SQLJ 4.17.29).
[3/26/15 14:22:46:182 EST] 0000005a com.worklight.common.util.jmx.LibertyRuntimeMBeanHandler I Establishing REST connection to service:jmx:rest://localhost:9443/IBMJMXConnectorREST
[3/26/15 14:22:46:189 EST] 0000005a com.ibm.worklight.admin.services.RuntimeService E Failed to obtain JMX connection to access an MBean.
There might be a JMX configuration error: java.lang.ClassNotFoundException: Cannot find the specified class com.ibm.websphere.ssl.protocol.SSLSocketFactory
[3/26/15 14:22:46:607 EST] 0000005a com.ibm.worklight.admin.services.RuntimeService W No running mxbeans found
Extract from console.log
[AUDIT ] CWWKF0011I: The server simpleServer is ready to run a smarter planet.
[err] dataBaseFromDataSource=true
[err] dataBaseUrl=jdbc:db2://mobilefirstdev7.local.com:50000/APPCNTR
[err] dataBaseDriver=IBM Data Server Driver for JDBC and SQLJ
[err] dataBaseDriverVersion=4.17
[err] dataBaseProduct=DB2/LINUXX8664
[err] dataBaseVersion=SQL10053
[err] dataBaseUser=db2inst1
[err] 153 appcenterdb-db2 INFO [LargeThreadPool-thread-14] openjpa.Runtime - Starting OpenJPA 1.2.2
[err] 360 appcenterdb-db2 INFO [LargeThreadPool-thread-14] openjpa.jdbc.JDBC - Using dictionary class "org.apache.openjpa.jdbc.sql.DB2Dictionary" (DB2/LINUXX8664 SQL10053 ,IBM Data Server Driver for JDBC and SQLJ 4.17.29).
[err] 376 WorklightManagementPU-db2 INFO [LargeThreadPool-thread-15] openjpa.Runtime - Starting OpenJPA 1.2.2
[err] 34 WorklightPU WARN [LargeThreadPool-thread-16] openjpa.Runtime - An error occurred while registering a ClassTransformer with PersistenceUnitInfo: name 'WorklightPU', root URL [file:/opt/IBM/WebSphere/Liberty/usr/shared/resources/worklight/lib/worklight-jee-library.jar]. The error has been consumed. To see it, set your openjpa.Runtime log level to TRACE. Load-time class transformation will not be available.
[err] 1 WorklightReportsPU WARN [LargeThreadPool-thread-16] openjpa.Runtime - An error occurred while registering a ClassTransformer with PersistenceUnitInfo: name 'WorklightReportsPU', root URL [file:/opt/IBM/WebSphere/Liberty/usr/shared/resources/worklight/lib/worklight-jee-library.jar]. The error has been consumed. To see it, set your openjpa.Runtime log level to TRACE. Load-time class transformation will not be available.
[err] 731 WorklightManagementPU-db2 INFO [LargeThreadPool-thread-15] openjpa.jdbc.JDBC - Using dictionary class "org.apache.openjpa.jdbc.sql.DB2Dictionary" (DB2/LINUXX8664 SQL10053 ,IBM Data Server Driver for JDBC and SQLJ 4.17.29).
[err] 2699 WorklightPU INFO [LargeThreadPool-thread-16] openjpa.Runtime - Starting OpenJPA 1.2.2
[err] 2861 WorklightPU INFO [LargeThreadPool-thread-16] openjpa.jdbc.JDBC - Using dictionary class "org.apache.openjpa.jdbc.sql.DB2Dictionary".
[err] 3567 WorklightManagementPU-db2 INFO [LargeThreadPool-thread-15] openjpa.Runtime - Though you are using optimistic transactions, OpenJPA is now beginning a datastore transaction because you have requested a lock on some data.
[AUDIT ] CWWKZ0001I: Application wladmin started in 38.705 seconds.
[AUDIT ] CWWKZ0001I: Application applicationcenter started in 39.095 seconds.
[AUDIT ] CWWKZ0001I: Application worklight started in 41.892 seconds.
[ERROR ] FWLSE0320E: Failed to check whether the admin services are ready. Caused by: [project worklight]
java.lang.ClassNotFoundException: Cannot find the specified class com.ibm.websphere.ssl.protocol.SSLSocketFactory
[err] Exception in thread "Initialization thread for Worklight runtime worklight"
[err] java.lang.RuntimeException: Timeout while waiting for the management service to start up.120 secs.
[err] at com.worklight.core.init.WorklightServletInitializer$1.run(WorklightServletInitializer.java:144)
[err] at java.lang.Thread.run(Thread.java:780)
[err] 249960 WorklightManagementPU-db2 INFO [LargeThreadPool-thread-32] openjpa.Runtime - Starting OpenJPA 1.2.2
[err] 249966 WorklightManagementPU-db2 INFO [LargeThreadPool-thread-32] openjpa.jdbc.JDBC - Using dictionary class "org.apache.openjpa.jdbc.sql.DB2Dictionary" (DB2/LINUXX8664 SQL10053 ,IBM Data Server Driver for JDBC and SQLJ 4.17.29).
[ERROR ] Failed to obtain JMX connection to access an MBean.
There might be a JMX configuration error: java.lang.ClassNotFoundException: Cannot find the specified class com.ibm.websphere.ssl.protocol.SSLSocketFactory
[WARNING ] No running mxbeans found