3 Replies Latest reply on Mar 24, 2012 8:32 AM by Steve Thames

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

    Steve Thames

      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.

        • 1. Re: RSL Error 1 of 1, Error #2032, Flex 3.6A, Flash Builder 4.6
          Flex harUI Adobe Employee

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

          1 person found this helpful
          • 2. Re: RSL Error 1 of 1, Error #2032, Flex 3.6A, Flash Builder 4.6
            Steve Thames Level 1

            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.96 3.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.96 3.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.96 3.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.96 3.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.96 3.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.

            • 3. Re: RSL Error 1 of 1, Error #2032, Flex 3.6A, Flash Builder 4.6
              Steve Thames Level 1

              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.