本文目录一览:
java 里面的方法 怎么调用 flex 的方法
推荐用remoteObject方式。 这里需要用到services-config.xml配置文件,我个人理解的该配置文件就是一个Flex与业务层间的通道。 假设业务层有一个java类TestAction.java ①那么services-config.xml配置文件中的写法就是这样:
<destination id="TestAction">
<channels>
<channel ref="spring-amf" />
</channels>
</destination>
完成这个配置之后就可以在Flex层调用TestAction里的方法了。 ②在MXML文件中这样写:
<mx:RemoteObject id="TestAction" destination="TestAction" showBusyCursor="true">
<mx:method name="findDataList" result="processFindDataList(event.result)" />
</mx:RemoteObject>
其中destination就是你在services-config.xml配置文件声明的通道,id是你在对应的AS文件可以用的名字。id你可以用随便的名字,你id起的是什么名字那你在AS文件中就用什么名字。 ③AS文件中这样写:
private function getDataList():void {
TestAction.findDataList(String para1, String para2, .....)
}
findDataList是TestAction中声明的方法。TestAction.findDataList返回的结果用processFindDataList方法接收(在mx:RemoteObject 中已经声明)
private function processFindDataList(result:Object):void {
if(result != null) {
// 处理
} else {
Alert.show("没有你想要的结果");
}
}
全部手写,不明白的话再讨论。 (这是我于2011-9-8 11:12给归海小豪的解答)。
flex 用socket连接JAVA时 的安全沙箱问题
关于Flex安全沙箱问题的解决最近遇到了Flex安全沙箱问题,找了很多资料发现不是都是和我的程序相关,我的程序需要socket连接,而大多数讲的都是跨域文件读取的。我就把这些方法都总结出来: 跨域文件读取
- 方法一:在目标服务器上布署crossdomain.xml文件(我用的此方法很管用,放上就没问题了)。需要远程服务根目录定义有crossdomain.xml文件,如下:
<?xml version="1.0" encoding="UTF-8"?> <cross-domain-policy> <allow-access-from domain="*" /> </cross-domain-policy>
- 方法二:使用代理,把Flex要访问的远程文件通过asp、php、jsp等脚本读取到本地,然后再由Flex去访问;
- 方法三:使用Adobe flash player9打开程序后,点击菜单栏中文件-创建播放器...即生成exe文件,运行exe文件即可突破安全限制;
- 方法四:
- 找到这个文件夹:
c:\Documents and Settings\UserName\Application Data\Macromedia\Flash Player\#Security
- 在其下建立一个名为"FlashPlayerTrust"的文件夹
- 在"FlashPlayerTrust"文件夹下新建一TXT文件,内容如下:
c:\ d:\ e:\ f:\
- 将该txt文件命名为:"myTrustFiles.cfg",再打开你硬盘里的SWF文件,就不会出现那个烦人的安全设置提示窗口了!
- 找到这个文件夹:
- 方法五:用HttpService它默认是有Proxy的,需要配置flex-config.xml,里面有一段:
这个是白名单,默认只有本地可以访问。其他的需要在flex-config.xml里自行修改成需要的就可以了。访问本地自然不会跨域,不过你肯定访问局域网其他机器了,所以是依照白名单规则,属于跨域。 Socket沙箱问题 在Flex安全沙箱中使用Socket进行通信时,也会受到Flash9的新安全策略的困扰。解决方法不能像在Web服务器中布置一个crossdomain.xml来解决,或是在服务器上专门开启843端口来提供安全策略。有一种方法就是在接收到客户端的连接后,向其发送安全策略。 比如我是用JAVA来开发,客户端的Flex会先搜索同域,及服务器的843口,看是否能得到安全策略,这时候Socket是先建立好的,可以在接收到Socket,即Accept事件发生时,马上向其发送策略串,否则客户端就会因为安全策略不过关而断开。如果成功获取策略,则客户端将断掉先前的那次Socket,再真正进行程序中你要求的Socket连接请求。<http-service-proxy> <whitelist> http://{localserver}/* https://{localserver}/* </whitelist> </http-service-proxy>
flex 与 java 通讯失败
对啊,修改配置文件之后必须要重启服务器才可以啊。以后注意了就可以了。 另外一般情况下修改一半类是不用重启服务器的,服务器都是直接可以加载修改后的类的。修改静态类或是静态方法最好重启。写的做的多了你就知道了。经验都是这样积累起来的。