Worklight 6.1: проблема в соединении worklight с BB old 6 /7

Я использую worklight 6.2 и создаю пример приложения blackberry 6 /7, но столкнулся с проблемой подключения.

Из-за проблемы с подключением я не могу вызвать адаптер и каждый раз получаю сбой в ответ от адаптера.

Мой фрагмент кода приведен ниже

config.xml

<widget xmlns="http://www.w3.org/ns/widgets" xmlns:rim="http://www.blackberry.com/ns/widgets" version="1.0" rim:backButton="exit">  
    <name>bb67</name>  
    <description>bb67</description>  
    <author email="application author's e-mail">application's author</author>  
    <feature id="worklightFeature" required="false" version="1.0.0"/>  
    <feature id="blackberry.ui.dialog" version="1.0.0"/>  
    <feature id="blackberry.ui.menu" version="1.0.0"/>  
    <feature id="blackberry.invoke" version="1.0.0"/>  
    <feature id="blackberry.invoke.BrowserArguments" version="1.0.0"/>  
    <feature id="blackberry.identity" version="1.0.0"/>  
    <feature id="blackberry.app" version="1.0.0"/>  
    <feature id="blackberry.app.event" version="1.0.0"/>  
    <access subdomains="true" uri="*"/>  
    <content src="www/skinLoader.html"/>  
    <icon rim:hover="false" src="icon.png"/>  
    <rim:loadingScreen backgroundImage="" foregroundImage="splash.png" onLocalPageLoad="false" onFirstLaunch="true"/> 
</widget>

Индекс, HTML

<!DOCTYPE HTML><html>
    <head>
        <meta charset="UTF-8">
        <title>bb67</title>
        <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
            <!--
                <link rel="shortcut icon" href="images/favicon.png">
                <link rel="apple-touch-icon" href="images/apple-touch-icon.png"> 
            -->
        <link href="worklight/worklight.css" rel="stylesheet">
        <link href="css/main.css" rel="stylesheet">
        <script>
        // Define WL namespace.
        var WL = WL ? WL : {};
        /**
         * WLClient configuration variables.
         * Values are injected by the deployer that packs the gadget.
         */
         WL.StaticAppProps = {
   "APP_DISPLAY_NAME": "bb67",
   "APP_ID": "bb67",
   "APP_SERVICES_URL": "http:\/\/192.168.0.222:10080\/bb67\/apps\/services\/",
   "APP_VERSION": "1.0",
   "ENVIRONMENT": "blackberry",
   "LOGIN_DISPLAY_TYPE": "embedded",
   "WORKLIGHT_PLATFORM_VERSION": "6.2.0.01.20141027-1531",
   "WORKLIGHT_ROOT_URL": "http:\/\/192.168.0.222:10080\/bb67\/apps\/services\/api\/bb67\/blackberry\/"
};
</script>
        <script src="worklight/wljq.js"></script>
        <script src="worklight/worklight.js"></script>
        <script>window.$ = window.jQuery = WLJQ;</script>
    </head>
    <body style="display: none;">
            <!--application UI goes here-->
            Hello Worklight<input onclick="msiteCall()" type="button" value="Call Adapter">
            <script src="js/initOptions.js"></script>
            <script src="js/main.js"></script>
            <script src="js/messages.js"></script>
    </body>
</html>

main.js

/* JavaScript content from js/main.js in folder common */
function wlCommonInit(){
    /*
     * Use of WL.Client.connect() API before any connectivity to a Worklight Server is required. 
     * This API should be called only once, before any other WL.Client methods that communicate with the Worklight Server.
     * Don't forget to specify and implement onSuccess and onFailure callback functions for WL.Client.connect(), e.g:
     *    
     *    WL.Client.connect({
     *          onSuccess: onConnectSuccess,
     *          onFailure: onConnectFailure
     *    });
     *     
     */

    // Common initialization code goes here
      WL.Client.connect({
                onSuccess: function onConnectSuccess(res){
                        alert('Connection Success '+res);
                },
                onFailure: function onConnectFailure(res){
                        alert('Connection Failure '+res);
                }
         });
}

/* JavaScript content from js/main.js in folder blackberry */
// This method is invoked after loading the main HTML and successful initialization of the Worklight runtime.
function wlEnvInit(){
    wlCommonInit();
    // Environment initialization code goes here
}
var timeout = 30000;
function msiteCall(){
    alert('Inside call');

    var invocationData = {
            adapter : "msiteAdap",
            procedure : "getStories",
            parameters : [],
            compressResponse : true
    };
    //WL.Logger.debug('invoke msg  '+invocationData, '');
    WL.Client.invokeProcedure(invocationData, {
        onSuccess : function succ(){alert("Success...");},
        onFailure : function fail(){alert("Failure...");},              

    });
}

Пожалуйста, предложите, если чего-то не хватает. Я использую веб-сайт для создания проекта. Я использовал приведенную ниже команду для построения файла cod.

bbwp C:\myapp\myarchive.zip -d -o C:\myapp\output 

А ниже - сгенерированная структура из проекта worklight.

Пожалуйста, предложите, если есть какой-нибудь правильный документ с веб-проектом в рабочем свете.

1 ответ

Из комментариев было написано, что это было решено при запуске приложения на физическом устройстве. Это устройство подключено через WiFi к той же сети, в которой работает сервер.

Оставшаяся проблема - при запуске приложения в BlackBerry Simulator, который на самом деле работает внутри VMWare Fusion.

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

Предложения:

  • Просмотрите настройки виртуальной машины и убедитесь, что она правильно настроена для доступа к локальной сети.
  • Вы можете проверить это, открыв браузер внутри и посмотреть, сможете ли вы получить доступ к консоли Worklight на сервере.
Другие вопросы по тегам