国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Flex > 正文

手把手教你使用flex eclipse整合spring

2024-09-08 18:17:30
字體:
來源:轉載
供稿:網友

最先下載FlashBuilder_4_7_LS10_win64.exe試了幾個eclipse安裝插件都沒成功,包括myeclipse8.5、spring sts2.9.2、eclipse3.5、j2eeeclipse版本4.2.0,后來搞了一個FlashBuilder_4_LS10.exe安裝完找不到插件安裝文件原來這個是單獨版,必須插件版才行,最后下載FlashBuilder_4_Plugin_LS10.exe終于配置成功了,myeclipse8.5不行,spring sts可以了。

spring sts部署應用跟myeclipse不一樣,比較類似eclipse。

用sts整合flex和java有幾個步驟:

1:新建動態web工程flexweb,創建web.xml

2: blazeds-turnkey-4.0.0.14931.zip解壓, 復制blazed兩個文件夾flex和lib到WEB-INF下,里面是blaze的jar包和flex配置文件,然后修改web.xml加入blaze支持

<listener>  <listener-class>flex.messaging.HttpFlexSession</listener-class> </listener>  <!-- MessageBroker Servlet --> <servlet>  <servlet-name>MessageBrokerServlet</servlet-name>  <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>  <init-param>   <param-name>services.configuration.file</param-name>   <param-value>/WEB-INF/flex/services-config.xml</param-value>  </init-param>  <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping>  <servlet-name>MessageBrokerServlet</servlet-name>  <url-pattern>/messagebroker/*</url-pattern> </servlet-mapping>

3:項目右鍵,添加/更改項目類型>添加flex類型項目,第一步,應用程序類型選擇J2EE,下方選擇BlazeDS,第二部根文件夾填入項目在workspase的路徑加一個WebContent,如E:/workspaces/sts/flexweb/WebContent,根URL填http://localhost:8080/flexweb,上下文根目錄/flexweb,輸出文件夾使用默認E:/workspaces/sts/flexweb/WebContent/flexweb-debug,點擊finish
4:轉換完成后,目錄有些變化,右鍵項目>properties>flex構建路徑,主源文件夾改為flex_src,然后把自動生成的src目錄下的flexweb.mxml移動到flex_src下,環境搭建就算完成了

HelloWorld

flexweb.mxml:

<?xml version="1.0" encoding="utf-8"?><s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"        xmlns:s="library://ns.adobe.com/flex/spark"        xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">    <fx:Script>    <![CDATA[     import mx.controls.Alert;     import mx.rpc.events.ResultEvent;        protected function myFlex_resultHandler(event:ResultEvent):void{      var name:String=event.result as String;      Alert.show(name);     }     protected function button1_clickHandler(event:MouseEvent):void     {       myFlex.sayHello(txtName.text);     }    ]]>   </fx:Script>    <fx:Declarations>    <!-- 將非可視元素(例如服務、值對象)放在此處 -->    <s:RemoteObject id="myFlex" destination="mytest" result="myFlex_resultHandler(event)"/>   </fx:Declarations>   <s:Button x="209" y="135" label="按鈕" click="button1_clickHandler(event)"/>   <s:TextInput x="166" y="81" id="txtName"/>   <s:Label x="10" y="81" text="請輸入內容:" fontSize="15" fontWeight="bold" fontFamily="中易黑體"/>  </s:Application>

其中

<s:RemoteObject id="myFlex" destination="mytest" result="myFlex_resultHandler(event)"/>

指定了一個調用Java的類Hello,mytest對應到remoting-config.xml

在WEB-INFO/flex目錄下remoting-config.xml加入

<destination id="mytest">    <properties>      <source>com.hongbo.Hello</source>    </properties>  </destination>

result對應的是java方法調用的回調函數
建一個普通java類

package com.hongbo;public class Hello { public String sayHello(String name){  System.out.println("------------------------------------");  return "Hello First Demo " + name; }}

這樣就OK了

訪問路徑是http://localhost:8080/flexweb/flexweb-debug/flexweb.html


第一次會報404,problems提示無法創建html包裝器,右鍵點擊重新創建模板

添加Spring支持

1:web.xml加入

<context-param>  <param-name>contextConfigLocation</param-name>  <param-value>/WEB-INF/classes/applicationContext.xml </param-value> </context-param> <listener>  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>

2:src下創建applicationContext.xml

<?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:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"> <bean id="hello" class="com.hongbo.Hello">  <property name="testSpring">   <ref bean="testSpring"/>  </property> </bean> <bean id="testSpring" class="com.hongbo.test.impl.TestSpringImpl"/></beans>

3:WEB-INF/flex/service-config.xml加入

<factories>   <factory id="spring" class="com.hongbo.SpringFactory" />  </factories>

添加java類

package com.hongbo;import org.springframework.beans.BeansException;import org.springframework.beans.factory.NoSuchBeanDefinitionException;import org.springframework.context.ApplicationContext;import org.springframework.web.context.support.WebApplicationContextUtils;import flex.messaging.FactoryInstance;import flex.messaging.FlexFactory;import flex.messaging.config.ConfigMap;import flex.messaging.services.ServiceException;public class SpringFactory implements FlexFactory { private static final String SOURCE = "source"; public void initialize(String id, ConfigMap configMap) { } public FactoryInstance createFactoryInstance(String id, ConfigMap properties) {  SpringFactoryInstance instance = new SpringFactoryInstance(this, id,    properties);  instance.setSource(properties.getPropertyAsString(SOURCE, instance    .getId()));  return instance; } // end method createFactoryInstance()   public Object lookup(FactoryInstance inst) {  SpringFactoryInstance factoryInstance = (SpringFactoryInstance) inst;  return factoryInstance.lookup(); } static class SpringFactoryInstance extends FactoryInstance {  SpringFactoryInstance(SpringFactory factory, String id,    ConfigMap properties) {   super(factory, id, properties);  }  public String toString() {   return "SpringFactory instance for id=" + getId() + " source="     + getSource() + " scope=" + getScope();  }  public Object lookup() {   ApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(flex.messaging.FlexContext.getServletConfig().getServletContext());   String beanName = getSource();   try {    return appContext.getBean(beanName);   } catch (NoSuchBeanDefinitionException nexc) {    ServiceException e = new ServiceException();    String msg = "Spring service named '" + beanName      + "' does not exist.";    e.setMessage(msg);    e.setRootCause(nexc);    e.setDetails(msg);    e.setCode("Server.Processing");    throw e;   } catch (BeansException bexc) {    ServiceException e = new ServiceException();    String msg = "Unable to create Spring service named '"      + beanName + "' ";    e.setMessage(msg);    e.setRootCause(bexc);    e.setDetails(msg);    e.setCode("Server.Processing");    throw e;   }  } }}

4:修改remoting-config.xml

<destination id="mytest">    <properties>     <factory>spring</factory>      <source>hello</source>    </properties>  </destination>

5:修改相應的Java類

package com.hongbo;import com.hongbo.test.TestSpring;public class Hello { private TestSpring testSpring;  public void setTestSpring(TestSpring testSpring) {  this.testSpring = testSpring; }  public String sayHello(String name){  return testSpring.testSpring(name); }}
package com.hongbo.test;public interface TestSpring { String testSpring(String name);}
package com.hongbo.test.impl;import com.hongbo.test.TestSpring;public class TestSpringImpl implements TestSpring{ public String testSpring(String name){  System.out.println("test spring-------------------------------------"+name);  return "test spring "+name; }}

最后,flex打印語句trace不會打印到控制臺,要先卸載flashplayer再安裝一個debuger版的flashplayer,下載flashplayer_uninstall.zip,卸載,下載flashplayer10r12_36_winax_debug.exe,安裝,卸載安裝后好像谷歌瀏覽器沒影響,然后eclipse修改默認瀏覽器為IE,window>preferences>General>Web browser,選擇Internet Explorer,最后還有,啟動tomcat后,必須在mxml上面右鍵debug運行,打開的IE才會打印trace,直接訪問網址是不行的。
如有遺漏請指出

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 全椒县| 孙吴县| 加查县| 广河县| 靖江市| 泸水县| 英山县| 石泉县| 四会市| 阿瓦提县| 巴楚县| 宝丰县| 蓬莱市| 江西省| 调兵山市| 古浪县| 牙克石市| 恭城| 东安县| 垣曲县| 隆子县| 集安市| 荆州市| 彝良县| 汪清县| 永春县| 万宁市| 长宁县| 桐梓县| 南江县| 丹棱县| 万年县| 武夷山市| 阳泉市| 恩平市| 陈巴尔虎旗| 呈贡县| 深水埗区| 德兴市| 抚宁县| 突泉县|