1、下载BlazeDS:
i. 把那个 .zip 文件保存到你的电脑上
ii. 里面有两个文件:blazeds.war 和 blazeds-bin-readme.html
iii. 把里面的 blazeds.war 文件解压到这个目录下:[tomcat-home]\webapps
打开这个目录:[tomcat-home]\webapps
i. 你应该会看到一个名为“blaseds”的文件夹
ii. 在blaseds文件夹里,会有一个名为“WEB-INF”的文件夹
iii. 在WEB-INF文件夹里会有很多文件夹,其中有一个名为“classes”的文件夹。Flex应用程序需要使用到的Java class就是放到这个文件夹里的
iv. 还有一个名为“flex”的文件夹,它里面有一个remoting-config.xml,我们要在这个remoting-config.xml文件里添加destination结点来告诉Flex应用程序如何连接上Java class的
2、编写Java类并编译
此处主要是RemoteObject使用
package dcec; public class HelloWorld { public String getHelloWorld(){ return "Hello world, chen"; } }
把编译好的Java类放置在第一步所讲的classes文件夹下。在这里要注意,类的包名也要在classes中建立好相应的文件夹,例如我的如下:
E:\Tomcat 6.0\webapps\blazeds\WEB-INF\classes\dcec\HelloWorld.class
再配置remoting-config.xml如下:
<?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> <!-- 添加的。。。--> <destination id="helloWorld"> <properties> <source>dcec.HelloWorld</source> </properties> </destination> </service>
此时启动Tomcat
3、建立Flex项目
注意红色标注的内容
在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.FaultEvent; import mx.rpc.events.ResultEvent; protected function button1_clickHandler(event:MouseEvent):void { ro.getHelloWorld(); } protected function ro_resultHandler(event:ResultEvent):void { Alert.show(event.result.toString());//在这里也可以使用ro.方法名.lastResult来获得 } protected function ro_faultHandler(event:FaultEvent):void { Alert.show("调用失败!"); } ]]> </fx:Script> <fx:Declarations> <s:RemoteObject id="ro" destination="helloWorld" source="dcec.HelloWorld" result="ro_resultHandler(event)" fault="ro_faultHandler(event)"/> </fx:Declarations> <s:Button x="86" y="49" label="按钮" click="button1_clickHandler(event)"/> </s:Application>
单击按钮,获得对话框
大功告成!!!
调用webservice服务。
新建Flex项目,步骤同上。
然后,配置proxy-config.xml文件
如下
<?xml version="1.0" encoding="UTF-8"?> <service id="proxy-service" class="flex.messaging.services.HTTPProxyService"> <properties> <connection-manager> <max-total-connections>100</max-total-connections> <default-max-connections-per-host>2</default-max-connections-per-host> </connection-manager> <allow-lax-ssl>true</allow-lax-ssl> </properties> <adapters> <adapter-definition id="http-proxy" class="flex.messaging.services.http.HTTPProxyAdapter" default="true"/> <adapter-definition id="soap-proxy" class="flex.messaging.services.http.SOAPProxyAdapter"/> </adapters> <default-channels> <channel ref="my-amf"/> </default-channels> <destination id="DefaultHTTP"> </destination> <destination id="ws-catalog"> <properties> <wsdl>http://feeds.adobe.com/webservices/mxna2.cfc?wsdl</wsdl> <soap>*</soap> </properties> <adapter ref="soap-proxy"/> </destination> </service>
mxml主文件如下:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundColor="#FFFFFF"> <mx:WebService id="srv" destination="ws-catalog" useProxy="true" showBusyCursor="true"/> <mx:DataGrid dataProvider="{srv.getCategories.lastResult}" width="100%" height="100%"> <mx:columns> <mx:DataGridColumn dataField="categoryId" headerText="Category Id"/> <mx:DataGridColumn dataField="categoryName" headerText="Category Name"/> </mx:columns> </mx:DataGrid> <mx:Button label="Get Data" click="srv.getCategories()"/> </mx:Application>
运行结果