FLEX炫界面,JAVA做后台服务类,读取操作SAP的数据.
用BlazeDs做JAVA+FLEX的通信配置.
JAVA:
在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="getList">
<properties>
<wsdl>http://服务器地址:8000/sap/bc/soap/wsdl/?services=Z_RFC_GETLIST</wsdl>
<soap>*</soap>
</properties>
<adapter ref="soap-proxy"/>
</destination>
</service>
注:Z_RFC_GETLIST为RFC名称,getList为FLEX端调用时用的服务ID.
FLEX:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" >
<mx:Script>
<![CDATA[
import mx.events.ListEvent;
import mx.rpc.events.FaultEvent;
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
[Bindable]
var ac:ArrayCollection = new ArrayCollection();
private function ckGetUser():void{
var para:Object=new Object();
para.USERID="";
para.USERNAME="";
getList.Z_RFC_GETLIST(para)
}
public function onResultUserGet(event:ResultEvent):void{
var o:Object = new Object();
ac = (event.result.T_USER) as ArrayCollection;
for(var i:int = 0 ; i<ac.length ; i++){
o = ac[i];
trace(o.USERID);
trace(o.USERNAME);
}
}
private function getError(event:FaultEvent):void{
//异常处理
}
]]>
</mx:Script>
<mx:WebService id="getList" destination="getList" useProxy="true" showBusyCursor="true"
result="onResultUserGet(event)" fault="getError(event)"/>
<mx:Button x="48" y="108" label="getUser" click="ckGetUser()" width="92"/>
<mx:DataGrid dataProvider="{ac}" x="162" y="107" width="286" height="246">
<mx:columns >
<mx:DataGridColumn dataField="USERID" />
<mx:DataGridColumn dataField="USERNAME" />
</mx:columns>
</mx:DataGrid>
</mx:Application>