1. 程式人生 > >flex 通過htmlservices鏈接moss的rest(rest 的get post方式)

flex 通過htmlservices鏈接moss的rest(rest 的get post方式)

obj 顯示調用 路徑更改 tps private url manage param type


一:flex debug(調試)——trace() ——moss導入

flex學習:1、flex出現不能使用trace調試語句的問題,控制臺無信息輸出。這個問題不須要改動安裝文件的參量。
僅僅須要下載最新的flashplayer_12_ax_debug就可以。在執行時。不能通過Web應用程序進行調試,
而應該按F11鍵進行調試,否則,相同不會輸出信息。

project整合
假設把bin-debug 或者 bin-release 放到liferay的tomcat以下。就全然不用新建portlet了,直接加入功能裏,
加入一個bin-debug 或者 bin-release /index.html就可以(index.html能夠省略);
另一種方法,就是把swf等相關的文件拷貝到portlet的某一個目錄以下。這樣jsp,html就能夠和swf進行通信了
導入mossproject時,普通project導入就可以,build path jar路徑更改,再把applicationContext做對應的剪切粘貼;
導入liferay project時。首先把project復制到portlets、theme以下,再按liferay project導入,
build path jar (自己的tomcat/root下)。

二:socket + httpservices 的通行學習



moss 後臺服務:@QueryParam("id") String id 這是通脫http的url傳遞參數的;
@FormParam("id") String id 這是通過表單方式傳遞參數的;@GET @POST方式,是指隱式調用參數還是顯示調用參數,即get的參數在瀏覽器的url中顯示。


/**
* @author zhangyapeng
* @function定位服務瀏覽器地址欄測試方法——
* @data 2014.06.10
*/
@GET
@Path("/locate")
@Produces(MediaType.TEXT_PLAIN)
public String locate2(@QueryParam("id") String id){

Stringcmd = "locate,"+id;
flexSocket.sendMessage(cmd);
return cmd;
}

/**
* @author zhangyapeng
* @function定位服務,liferay 調用
* @data 2014.06.10
*/
@POST
@Path("/locate")
@Produces(MediaType.APPLICATION_JSON)
public void locate(@QueryParam("id") String id){

//同上。

。。
}
GET
@Path("{contact}")
@Produces(MediaType.TEXT_PLAIN)
public String getres(@PathParam("contact") String contact)
{
return "Hello, " + contact;

}

總之。是(@PathParam("contact") String contact) 還是(@QueryParam("id") String id) 還是@(FormParam("id") String id)跟參數的傳遞方式有關 是url還是form表單提交;

[email protected]

/* */ @POST是指 把查詢的結果發送的方式。

三:flex 的httpserviece :

首先聲明httpservice 進行聲明
<fx:Declarations>
<!-- 將非可視元素(比如服務、值對象)放在此處 -->
<smt:MyPopup id="myPopup"/>
<mx:HTTPService id="locateService" method = "POST" useProxy="false" resultFormat="text"
fault="onFalutHandler(event)"result="onStemeEventResultHandler(event)"/>
</fx:Declarations>

之後,觸發send()函數。。。
// 依據id調用locateService(httpservice)
private functiongetSmteEventById(id:String):void
{


locateService.url =baseURL + "/getSmteEventById";
locateService.method= "POST";
var params:Object = new Object();
params.id= id;
locateService.request= params;
trace(locateService.url);
locateService.send();
}

全部的url 須要在配置文件裏寫,。,GridManageWidget.mxml RouteWidget.mxml(路徑分析有問題的哦) SocketWidget.mxml 在各自的xml中。當然自己也創建了一個CommonURL.xml。
在更改config.xml的相應該就可以,config=""的屬性值。。


難題—— Search.mxml,是系統自帶的,它的Search.xml中有好多圖層的url,得自己改的哦。。
----- 所以如今的解決方法是 通過config.xml總的系統配置文件,相應找config=""的屬性值,更改各個url的。

flex 通過htmlservices鏈接moss的rest(rest 的get post方式)