Неверный идентификатор арендатора для службы мобильного клиентского доступа в IBM Bluemix

#debugging #mobile #ibm-cloud #ibm-mobile-services

#отладка #Мобильный #ibm-cloud #ibm-mobile-services

Вопрос:

Мы столкнулись с проблемой мобильного приложения, основанного на службе мобильного клиентского доступа IBM Bluemix. Раньше это работало нормально, но в наши дни мы обнаружили следующий сбой после запуска приложения.

     http://www.ibm.com/developerworks/library/mo-android-mobiledata-app/
    10-13 11:19:04.194 2721-2978/com.ibm.bluelist E/SplashActivityLoginFail: Failed to login: Response: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">;;;
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>

    <div id="content">
    <div id="page">
    <div id="box">

    <div id="error"> Exception thrown by application class 'com.worklight.applications.bean.ApplicationManagementServiceBeanOnCloud.getApplication:120'
    </div>
    <div id="code">
    java.lang.IllegalStateException: Bluemix canamp;#39;t find application with tenantId 6dfe3edc-2c3f-4117-a2b7-8cade0a527ec and id iOSnative.<br>
    <div id="stack">at com.worklight.applications.bean.ApplicationManagementServiceBeanOnCloud.getApplication(ApplicationManagementServiceBeanOnCloud.java:120)<br>at com.worklight.applications.bean.ApplicationManagementServiceBeanOnCloud.getApplicationEnvironment(ApplicationManagementServiceBeanOnCloud.java:140)<br>at com.worklight.authorization.AuthorizationServer.getApplicationEnvironmentRuntime(AuthorizationServer.java:217)<br>at com.worklight.authorization.AuthorizationServer.getApplicationEnvironmentRuntime(AuthorizationServer.java:182)<br>at com.worklight.authorization.AuthorizationEndpoint.authorizeClient(AuthorizationEndpoint.java:170)<br>at sun.reflect.GeneratedMethodAccessor48.invoke(Unknown Source)<br>at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br>at java.lang.reflect.Method.invoke(Unknown Source)<br>at org.apache.wink.server.internal.handlers.InvokeMethodHandler.handleRequest(InvokeMethodHandler.java:63)<br>at org.apache.wink.server.handlers.AbstractHandler.handleRequest(AbstractHandler.java:33)<br>at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)<br>at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)<br>at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)<br>at org.apache.wink.server.internal.handlers.CreateInvocationParametersHandler.handleRequest(CreateInvocationParametersHandler.java:54)<br>at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)<br>at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)<br>at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)<br>at org.apache.wink.server.handlers.AbstractHandl
 

Из сообщения об ошибке, кажется, выше сбой из-за недопустимого TenantId:

 java.lang.IllegalStateException: Bluemix can't find application with tenantId xxxx
 

На самом деле мы получили идентификатор арендатора из AppGuid на панели управления сервиса MCA, идентификатор должен быть правильным…

Мы ищем помощи для отладки этой проблемы. Любые комментарии приветствуются.

Комментарии:

1. Не могли бы вы попробовать создать новую службу?

Ответ №1:

Я не смог воссоздать эту проблему. Я бы посоветовал перезапустить приложение или попробовать другую службу MCA, чтобы узнать, решит ли это проблему.

Если вы по-прежнему сталкиваетесь с проблемами, сообщите мне, и мы сможем выполнить дополнительную отладку, или вы можете открыть запрос в службу поддержки Bluemix, который будет содержать дополнительную информацию о вашем экземпляре, чтобы помочь службе поддержки исправить вашу ошибку.

Комментарии:

1. Большое спасибо за ваш ответ. Теперь мы сталкиваемся с другой проблемой: с новым интерфейсом Bluemix я не смог найти мобильные опции для поиска appGUID для моего приложения. Не могли бы вы дать какой-нибудь ключ к решению этой проблемы?

2. Параметр AppGuid больше не является обязательным для использования последних версий Bluemix Mobile SDK. Как именно вы используете его в настоящее время? (и на какой платформе?) Я могу помочь вам мигрировать, если это необходимо.

Ответ №2:

Мы используем MCA с пользовательской аутентификацией, способ, которым это работает, заключается в том, что MCA android client SDK будет подключаться к сервису MCA Bluemix с помощью GUID приложения и имени RELAM.

Вам необходимо убедиться, что оба они совпадают во внешнем интерфейсе и на серверной части. Оба параметра являются обязательными.

         MCAAuthorizationManager mcaAuthorizationManager = MCAAuthorizationManager.createInstance(this.getApplicationContext(),"<App GUID>");
        mcaAuthorizationManager.registerAuthenticationListener("<relam Name>", new CustomAuthenticationListener());
        BMSClient.getInstance().setAuthorizationManager(mcaAuthorizationManager);