果子的程序人生

          Spring blazeDS Integration destination not exists異常解決

          環(huán)境:
          • Spring blazeDS Integration 1.0.0 release
          • blazeDS 3.2.0.3978
          • jdk1.6.0_06
          • flex sdk 3.2.0
          • flex builder 3
          在web.xml中配置DispatcherServlet
          <?xml version="1.0" encoding="UTF-8"?>
          <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xmlns
          ="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
              xsi:schemaLocation
          ="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
              id
          ="WebApp_ID" version="2.5">
              
          <display-name>flex_server</display-name>
              
          <context-param>
                  
          <param-name>contextConfigLocation</param-name>
                  
          <param-value>/WEB-INF/context-*.xml</param-value>
              
          </context-param>
              
          <listener>
                  
          <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
              
          </listener>
              
          <servlet>
                  
          <servlet-name>flex</servlet-name>
                  
          <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
                  
          <load-on-startup>1</load-on-startup>
              
          </servlet>
              
          <servlet-mapping>
                  
          <servlet-name>flex</servlet-name>
                  
          <url-pattern>/messagebroker/*</url-pattern>
              
          </servlet-mapping>
              
          <welcome-file-list>
                  
          <welcome-file>index.html</welcome-file>
              
          </welcome-file-list>
          </web-app>

          在flex-servlet.xml中定義destination
          <?xml version="1.0" encoding="UTF-8"?>
          <beans xmlns="http://www.springframework.org/schema/beans"
              xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
              xmlns:tx
          ="http://www.springframework.org/schema/tx" xmlns:flex="http://www.springframework.org/schema/flex"
              xsi:schemaLocation
          ="http://www.springframework.org/schema/beans 
              http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
              http://www.springframework.org/schema/context
              http://www.springframework.org/schema/context/spring-context-2.5.xsd
              http://www.springframework.org/schema/tx
              http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
              http://www.springframework.org/schema/flex   
              http://www.springframework.org/schema/flex/spring-flex-1.0.xsd"
          >
              
          <flex:message-broker />
              <!-- premiumService是普通的業(yè)務bean -->
              
          <flex:remoting-destination ref="premiumService"/>
          </beans>

          這樣在remoting-config.xml中就不需要定義destination了
          <?xml version="1.0" encoding="UTF-8"?>
          <service id="remoting-service" 
              class
          ="flex.messaging.services.RemotingService">

              
          <adapters>
                  
          <adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/>
              
          </adapters>

              
          <default-channels>
                  
          <channel ref="my-amf"/>
              
          </default-channels>
              
          <!--注釋掉,否則啟動會報錯或出現(xiàn)其他問題
              <destination id="premiumService">
                  <properties>
                      <source>org.hag.flex.service.PremiumService</source>
                  </properties>
              </destination>
              
          -->
          </service>

          測試
          <?xml version="1.0" encoding="utf-8"?>
          <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
              creationComplete
          ="premiumService.getPremiumList()">
              
          <mx:Script>
                  
          <![CDATA[
                      <!-- 省略import -->
                      private function resultHandler(evt:ResultHandler):void
                      {
                          Alert.show(evt.result.toString());
                      }
                      private function faultHandler(evt:FaultHandler):void
                      {
                          Alert.show(evt.fault.toString());
                      }
                  
          ]]>
              
          </mx:Script>
              
          <mx:RemoteObject id="premiumService" ref="premiumService"
                  result
          ="resultHandler(event)" fault="faultHandler(event)"/>
          </mx:Application>

          結果這時候報錯,destination "premiumService" either does not exists....
          原因是mxml編譯時要根據remoting-config.xml來處理destination的定義,而我們把premiumService定義在了spring bean中,所以它根本就不知道premiumService的存在。取消掉remoting-config.xml的注釋,再次對mxml進行編譯(如修改后保存),在瀏覽器中清除緩存、刷新,OK,結果出來了。

          注意在tomcat啟動時又要把remoting-config.xml定義的destination注釋掉,否則會出問題。或者干脆在其他地方建立一個文件專門用于mxml的編譯。

          posted on 2009-07-04 00:41 果子 閱讀(881) 評論(1)  編輯  收藏 所屬分類: springjavaflex

          評論

          # re: Spring blazeDS Integration destination not exists異常解決 2009-11-12 00:34 hbbbs

          GOOD,我也碰到了這個問題  回復  更多評論   


          只有注冊用戶登錄后才能發(fā)表評論。


          網站導航:
           

          導航

          <2009年11月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          統(tǒng)計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 蚌埠市| 鲜城| 荣成市| 行唐县| 余姚市| 天全县| 桦甸市| 甘泉县| 忻州市| 灵璧县| 惠东县| 青神县| 邵东县| 乌兰县| 右玉县| 新和县| 绥滨县| 平乡县| 齐齐哈尔市| 三穗县| 金川县| 老河口市| 建湖县| 孙吴县| 正宁县| 金昌市| 临清市| 温泉县| 宜宾县| 东乡| 清涧县| 阜新市| 恩施市| 喀什市| 旌德县| 津市市| 屯昌县| 青阳县| 平阴县| 花莲市| 延吉市|