Консоль управления MobileFirst v7.0 показывает, что среда выполнения не установлена, несмотря на то, что инструмент настройки сервера показывает среду выполнения. Некоторые ошибки в логах

Это меня поразило, я просмотрел множество других сообщений / вопросов как в Stack Overflow, так и в других местах, а также поговорил с некоторыми сотрудниками IBM, которые тоже не знают причины.

Я настроил MobileFirst Platform Server на виртуальной машине в соответствии с инструкциями в центре знаний для v7.0 «Учебное пособие по базовой установке MobileFirst Server» (используя DB2 в качестве базы данных). Я следовал каждому шагу, но на шаге № 9 Консоль управления фактически не показывает среду выполнения, как я ожидал. Это означает, что я не могу развернуть адаптеры и т. д., чтобы правильно протестировать приложение на физическом устройстве. (В конечном итоге эта виртуальная машина будет иметь общедоступный 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

(Следующие журналы сервера были очищены перед операцией «запуск простого сервера»)

Извлечение из 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

person InterestingMix    schedule 26.03.2015    source источник
comment
server.xml files.interestingmix.com.au/ стек/liberty-server.xml   -  person InterestingMix    schedule 26.03.2015
comment
Руководство центра знаний, которому я следовал: www-01.ibm.com/support/knowledgecenter/SSHS8R_7.0.0/   -  person InterestingMix    schedule 26.03.2015
comment
У меня такая же проблема с IBM Mobile First v6.3 с Tomcat 7. Я развертываю среду выполнения с помощью инструмента настройки сервера без каких-либо проблем, но он показывает, что среда выполнения не найдена. на консоли управления.   -  person Sanket K.    schedule 26.03.2015


Ответы (2)


Проверьте этот пост — вы не можете использовать полный профиль Java SDK по умолчанию с Liberty, так как он настроен на другую SSLFactory.

Вам либо необходимо:
- переключиться на Oracle JVM
- использовать отдельно загружаемый IBM SDK для Liberty
- внести следующие изменения в конфигурацию Liberty:

Создайте файл jvm.options со следующим содержимым:

-Djava.security.properties=./custom.java.security

Создайте custom.java.security в том же каталоге, что и файл jvm.options, вам нужны только эти два, ничего больше:

ssl.SocketFactory.provider=
ssl.ServerSocketFactory.provider=
person Gas    schedule 26.03.2015
comment
Спасибо вам обоим. Это всегда хороший знак, когда два человека предлагают одно и то же решение. Я реализовал метод jvm.options, как описано в обоих ваших ответах, и теперь проблема решена. - person InterestingMix; 27.03.2015

После некоторых обсуждений этого сообщения об ошибке были предложены следующие способы решения этой проблемы:

  1. Либо использовать другую JRE (Oracle JRE 6 или 7, либо IBM JRE 6 или 7 вне полного профиля WAS).

  2. И/или следуйте инструкциям по ссылке на документ здесь: 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

person Idan Adar    schedule 26.03.2015