Flex dynamically sets the RemoteObject endpoing and flex traverses the object
In flex development, users often encounter different project names when deploying a project. However, flex is the endpoing generated during compilation. If you change the name to deploy the project, flex cannot access the service.
Solution:
Use jsp to obtain the current project name and path. Use flex to call js to obtain the project path and name. Modify the endpoint.
The source code is as follows:
Flex:
<s:RemoteObject id="IndexServicesController" destination="IndexServicesController" fault="httpServiceFault(event)"endpoint="{endpoint}/messagebroker/amf"><s:method name="getSysMenu" result="getSysMenuResultHandler(event)" /></s:RemoteObject>
override protected function createChildren():void {if(ExternalInterface.available){endpoint = ExternalInterface.call("getEndopint");}super.createChildren();}
[Bindable]private var endpoint:String = "";
JSP:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>
<script type="text/javascript">function getEndopint(){return "<%=basePath%>";}</script>