Skip to main content
sthames42
Participant
March 24, 2012
Answered

RSL Error 1 of 1, Error #2032, Flex 3.6A, Flash Builder 4.6

  • March 24, 2012
  • 1 reply
  • 18973 views

We are transitioning from Flex 3.1A to 3.6A. Everything has worked fine for years under 3.1. We have been testing under 3.6 for a month under HTTP and everything is working. When weinstall to our staging server and run under HTTPS, we get this error and NO OTHER INFORMATION.

We test under Flash Builder but build production swfs and swcs using the command line tools MXMLC and COMPC. We are using the framework RSLs and copy the swf/swz files to our servers as part of the installation.

Output from MXMLC for compilation of signup.mxml:

       Loading configuration file C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.6\sdks\3.6.0\frameworks\flex-config.xml

       Loading configuration file D:\Develop\CSM\PractiCal\Flex\null1709033641.xml

       D:\Develop\CSM\PractiCal\Flex\build\signup.swf (174148 bytes)

Contents of configuration file 'null1709033641.xml':

      <flex-config>

        <compiler>

          <debug>false</debug>

          <library-path append="true">

            <path-element>D:\Develop\CSM/CSMCommonFlex/build/CSMCommonFlex.swc</path-element>

          </library-path>

        </compiler>

        <static-link-runtime-shared-libraries>false</static-link-runtime-shared-libraries>

        <use-network>true</use-network>

        <verify-digests>true</verify-digests>

        <runtime-shared-library-path>

          <path-element>C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.6\sdks\3.6.0/frameworks/libs/framework.swc</path-element>

          <rsl-url>flash/framework_3.6.0.21751.swz</rsl-url>

          <policy-file-url/>

          <rsl-url>flash/framework_3.6.0.21751.swf</rsl-url>

          <policy-file-url/>

        </runtime-shared-library-path>

      </flex-config>

This is all I could find on the web:

  1. Make sure the web server understands the .swz extension as MIME type 'application/x-shockwave-flash'.
    Done.

  2. Add a 'crossdomain.xml' file to the web server root and make sure it can be read.
    Done, tried both secure="true" and secure="false".

<?xml version="1.0"?>

<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">

<cross-domain-policy>

  <allow-access-from domain="*" secure="true"/>

</cross-domain-policy>

As I said, all works fine under 3.1.

I am dead stuck and have no idea what to try next.

Please, please, help.

    This topic has been closed for replies.
    Correct answer sthames42

    In the Flex 3 docs for the MXMLC compiler, the rsl-url attribute of the option is described as

    "You specify the location of the SWF file relative to the deployment location of the application.

    For example, if you store a file named library.swf file in the web_root/libraries directory on the

    web server, and the application in the web root, you specify libraries/library.swf."

    This clearly indicates the URL for the library is relative to the swf.

    The documentation for the rsl-url attribute of the runtime-shared-library-path option is not so clear, however:

    "The rsl-url argument is the URL of the RSL that will be used to load the RSL at runtime.
    The compiler does not verify the existence of the SWF file at this location at compile time.
    It does store this string in the application, however, and uses it at run time. As a result, the
    SWF file must be available at run time but necessarily not at compile time."

    Clearly, the rsl-url attribute of both elements was intended to hold a URL relative to the swf app and the Flex 3.1 MXMLC was storing the URL as relative to the web root. I compensated for this in my 3.1 config files by providing a URL relative to the root but without the leading slash (/). This bug was fixed somewhere between 3.1 and 3.6 so my root-relative URLs were now being saved, correctly, as app-relative.

    Adding a leading slash (/) to my root-relative URLs solved the problem.

    I know--it should have been there in the first place.

    1 reply

    Adobe Employee
    March 24, 2012

    Not sure. Try a network monitor and see if the RSL is being served.

    sthames42
    sthames42Author
    Participant
    March 24, 2012

    Thanks for the response.

    Your suggestion made me wonder what the server log would show. I had already tried to load the swf/swz files directly in the browser with success but decided to look at the log anyway. I found something quite strange. Remember I said everything works under 3.1 but I get the RSL error under 3.6.

    Here is the RSL config under 3.1:

            <runtime-shared-library-path>

              <path-element>C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.6\sdks\3.1.0/frameworks/libs/framework.swc</path-element>

              <rsl-url>flash/framework_3.1.0.2710.swz</rsl-url>

              <policy-file-url/>

              <rsl-url>flash/framework_3.1.0.2710.swf</rsl-url>

              <policy-file-url/>

            </runtime-shared-library-path>

    Here is the server log:

    2012-03-24 13:47:29 W3SVC681033441 192.168.35.21 GET /flash/signup.swf 129770254840000000 443 - 192.168.135.2 Mozilla/5.0+(Windows+NT+6.1;+WOW64)+AppleWebKit/535.11+(KHTML,+like+Gecko)+Chrome/17.0.963.83+Safari/535.11 200 0 0

    2012-03-24 13:47:30 W3SVC681033441 192.168.35.21 GET /flash/framework_3.1.0.2710.swz - 443 - 192.168.135.2 Mozilla/5.0+(Windows+NT+6.1;+WOW64)+AppleWebKit/535.11+(KHTML,+like+Gecko)+Chrome/17.0.963.83+Safari/535.11 200 0 0

    All good.

    Here is the RSL config under 3.6:

            <runtime-shared-library-path>

              <path-element>C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.6\sdks\3.6.0/frameworks/libs/framework.swc</path-element>

              <rsl-url>flash/framework_3.6.0.21751.swz</rsl-url>

              <policy-file-url/>

              <rsl-url>flash/framework_3.6.0.21751.swf</rsl-url>

              <policy-file-url/>

            </runtime-shared-library-path>

    Here is what the server log shows:

    2012-03-24 13:42:21 W3SVC681033441 192.168.35.21 GET /flash/flash/framework_3.6.0.21751.swz - 443 - 192.168.135.2 Mozilla/5.0+(Windows+NT+6.1;+WOW64)+AppleWebKit/535.11+(KHTML,+like+Gecko)+Chrome/17.0.963.83+Safari/535.11 404 0 3

    2012-03-24 13:42:21 W3SVC681033441 192.168.35.21 GET /flash/signup.swf 129770285400000000 443 - 192.168.135.2 Mozilla/5.0+(Windows+NT+6.1;+WOW64)+AppleWebKit/535.11+(KHTML,+like+Gecko)+Chrome/17.0.963.83+Safari/535.11 200 0 0

    2012-03-24 13:42:21 W3SVC681033441 192.168.35.21 GET /flash/flash/framework_3.6.0.21751.swf - 443 - 192.168.135.2 Mozilla/5.0+(Windows+NT+6.1;+WOW64)+AppleWebKit/535.11+(KHTML,+like+Gecko)+Chrome/17.0.963.83+Safari/535.11 404 0 3

    RSL Error 1 of 1

    You can see in the 3.1 log the swf/swz files are loaded from the /flash folder and under 3.6 from the /flash/flash folder.

    Clearly, under 3.1, the compiler appears to be adding a leading slash (/) in the <rsl-url> element so "flash/framework_3.1.0.2710.swz" becomes "/flash/framework_3.1.0.2710.swz". This is not the case under 3.6 so the swf/swz files are loaded from "/flash/flash" which does not exist.

    Thanks for the clue.

    sthames42
    sthames42AuthorCorrect answer
    Participant
    March 24, 2012

    In the Flex 3 docs for the MXMLC compiler, the rsl-url attribute of the option is described as

    "You specify the location of the SWF file relative to the deployment location of the application.

    For example, if you store a file named library.swf file in the web_root/libraries directory on the

    web server, and the application in the web root, you specify libraries/library.swf."

    This clearly indicates the URL for the library is relative to the swf.

    The documentation for the rsl-url attribute of the runtime-shared-library-path option is not so clear, however:

    "The rsl-url argument is the URL of the RSL that will be used to load the RSL at runtime.
    The compiler does not verify the existence of the SWF file at this location at compile time.
    It does store this string in the application, however, and uses it at run time. As a result, the
    SWF file must be available at run time but necessarily not at compile time."

    Clearly, the rsl-url attribute of both elements was intended to hold a URL relative to the swf app and the Flex 3.1 MXMLC was storing the URL as relative to the web root. I compensated for this in my 3.1 config files by providing a URL relative to the root but without the leading slash (/). This bug was fixed somewhere between 3.1 and 3.6 so my root-relative URLs were now being saved, correctly, as app-relative.

    Adding a leading slash (/) to my root-relative URLs solved the problem.

    I know--it should have been there in the first place.