Apache flex 如何通过flashvars更改webservice URL

Apache flex 如何通过flashvars更改webservice URL,apache-flex,Apache Flex,我正在使用部署在SAPWeb应用服务器上的webservice创建一些图表。在将FLEX应用程序从dev迁移到QA时,我还希望在FLEX中更改目标webservices的地址,以便它们从QA访问webservices。我所做的是将目标服务器地址添加为URL参数,并将这些URL参数添加为Flex中的FlashVar var wsdlUrl=window.location.search.substring(1) flashvars.serverUrl=wsdlUrl 现在,我尝试在声明Web服务时访

我正在使用部署在SAPWeb应用服务器上的webservice创建一些图表。在将FLEX应用程序从dev迁移到QA时,我还希望在FLEX中更改目标webservices的地址,以便它们从QA访问webservices。我所做的是将目标服务器地址添加为URL参数,并将这些URL参数添加为Flex中的FlashVar

var wsdlUrl=window.location.search.substring(1)
flashvars.serverUrl=wsdlUrl

现在,我尝试在声明Web服务时访问FlashVar

<fx:Declarations>
<cscustomreportservice:CSCustomReportService 
id="cSCustomReportService" useProxy="false" wsdl="{FlexGlobals.topLevelApplication.parameters.serverUrl}" 
fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" showBusyCursor="true"/>
...
</fx:Declarations>

...
但是FlashVar在声明期间是不可访问的

是否有任何方法可以在运行时传递服务器URL,这样无论如何都不需要在Flex应用程序中硬编码URL

致以最良好的祝愿, Nakul

只需转到
\src\services

在services文件夹中,将有一个带有服务名称的文件夹。在这个文件夹中,将有2个文件,其中,打开一个以“\”(下划线)开头的文件


在这个文件中,您可以修改链接/URL。

您可以通过使用src文件夹下的自定义Config.xml文件来实现这一点。 在应用程序的main.mxml中,有一个可以在应用程序中访问的静态变量

public static var endpointUrl:String;
对config.xml进行HTTPService调用

<mx:HTTPService id="configSrv"
                url="config.xml"
                resultFormat="e4x"
                result="configResultHandler(event)"/>
现在在标记中,您可以像这样调用静态变量

<cscustomreportservice:CSCustomReportService id="cSCustomReportService" useProxy="false" wsdl="{Main.endPointURL}" fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" showBusyCursor="true"/>

示例config.xml供您参考:

 <channels>
    <channel id="endpoint"
             endpoint="http://localhost:8080/myApp/"/>
</channels>

你是不是马上就开始拍摄?作为应用程序设置的一部分?您最好等待applicationComplete启动,然后直接设置url。
 <channels>
    <channel id="endpoint"
             endpoint="http://localhost:8080/myApp/"/>
</channels>