ibm-mobilefirstworklight-studio

Worklight 6.2 common environment deployment issue since last fix pack : WL is not defined


I recently installed the latest Worklight fix pack update, and am now running v6.2.0.01.20141027-1531 Since that, I've noticed a blocking bug about my common environment deployment on the WL server.

Now when I deploy my app ("Run as > Build all environments" and then "Run on Worklight development server"), running my app in the "Preview as common resources" or in the iPad / Android mobile web environments give me the following Javascript error :

WL is not defined

When I inspect the source code, I realize that the "Worklight generated" Javascript source code is missing in the head tag. I'm supposed to see something like this :

<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": "appname",
        "APP_ID": "project",
        "APP_SERVICES_URL": "\/project\/apps\/services\/",
        "APP_VERSION": "1.0",
        "ENVIRONMENT": "preview",
        "LOGIN_DISPLAY_TYPE": "popup",
        "LOGIN_POPUP_HEIGHT": 610,
        "LOGIN_POPUP_WIDTH": 920,
        "PREVIEW_ENVIRONMENT": "common",
        "WORKLIGHT_PLATFORM_VERSION": "6.2.0.01.20141027-1531",
       "WORKLIGHT_ROOT_URL": "\/project\/apps\/services\/api\/app\/common\/"
    };
</script>

...but there's nothing like this in my page's source code (that's why the WL is not found). Moreover, it does not include the worklight.js and wljq.js files that are supposed to be dynamically added during the build phase (as far as I know). My index.html content is "vanilla", and it explains why nothing works.

So I decided to check in the bin archives that are generated during the build phase. It happens that the app-common.wlapp archive contains the correctly generated source code, with all the Worklight generated stuff inside. It looks like something wrong is happening during the deployment step. I tried to import it manually in the WL Console, but it's unfortunately not working either (same result).

I did not manage to reproduce the problem creating a new project, it looks like it only happens after an update of Worklight to the latest fix pack version. Thus, it's complicated to provide a sample project.

NB : everything works fine once running on an actual device. Only the common environment is broken in my case. But a colleague of mine also noticed this issue for the other environments so... I'll let you know if I manage to reproduce it for the other environments.

Thank you for you help, please ask if you need more inputs from me.


Solution

    1. You are not required to do "build all..." and then "run on...". That's just repeating the same step, as "Run on Worklight Development Server" means "build the project artifacts (.wlapp file, .war file) and then deploy them".

    2. A vanilla index.html contains references to initoptions.js, main.js, main.css and messeages.js. You are kinda confusing in your wording as to what is expected and where is it expected.

    Anyway, try the following:

    1. Close Eclipse
    2. Go to your tmp folder and delete the wlBuildResources folder
    3. Open Eclipse and try the following two paths:

      • Right-click the app folder > Run As > Run on Worklight Developer Server > Open Worklight Console > preview as common web resources
      • Right-click the app folder > Run As > Preview

    Tell me which of the two fails, if at all.