这个让我好斗,我已经在Stack Overflow和其他地方看了很多其他帖子/问题,并且对一些不了解原因的IBM员工说过。< / p>
我已按照知识中心v7.0和#34; MobileFirst Server基本安装教程&#34;中的说明在VM中设置了MobileFirst Platform Server。 (使用DB2作为数据库)。我已经完成了每一步,但在第9步,操作控制台实际上并没有像我期望的那样显示运行时。这意味着我无法部署适配器等,以便能够在物理设备上正确测试应用程序。 (最终这个VM将具有公共IP暴露,因此我们可以在任何互联网连接上使用/演示应用程序。)
部署到服务器的应用程序中心等工作正常,我已经能够将手机和平板电脑连接到它,以下载部署的APK并安装它们。只是这个运行时问题无效。
日志中有一些消息,基于我的研究表明可以忽略的错误,或者已经在6.3中修复的错误。我喜欢某人能够解释造成这个问题的原因,这正在驱使我们中的一些香蕉。我们认为它可能与JMX或SSLSocket错误有关,但实际上无法确定确切原因或如何纠正它(因为我们根本不会使用ssl)。
服务器配置工具的屏幕截图 http://www.files.interestingmix.com.au/stack/mfps_servconf_runtime.png
操作控制台的屏幕截图 http://www.files.interestingmix.com.au/stack/mfps_opscons_noruntime.png
(以下服务器日志在&#34;服务器启动simpleserver&#34;操作之前被清除)
从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
从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
答案 0 :(得分:2)
检查this post - 默认情况下,您无法使用完整配置文件Java SDK,因为它配置为不同的SSLFactory。
您需要:
- 切换到Oracle JVM
- 使用可单独下载的IBM SDK for Liberty
- 在Liberty配置中进行以下更改:
使用以下内容创建jvm.options
文件:
-Djava.security.properties=./custom.java.security
在与custom.java.security
文件相同的目录中创建jvm.options
,您只需要这两个,仅此而已:
ssl.SocketFactory.provider=
ssl.ServerSocketFactory.provider=
答案 1 :(得分:1)
在对此错误消息进行一些讨论之后,解决此问题的建议是:
使用不同的JRE(Oracle JRE 6或7,或WAS Full Profile之外的IBM JRE 6或7)。
和/或按照文档链接中的说明操作: http://www-01.ibm.com/support/knowledgecenter/SSAW57_8.5.5/com.ibm.websphere.wlp.nd.doc/ae/rwlp_trouble.html?cp=SSAW57_8.5.5%2F1-17-0