java blazeds_Flex+Java+Blazeds

本文介绍了在特定环境(jdk1.6、Flex4.6)和工具(MyEclipse10)下,使用Blazeds连接方式,将Java嵌入Flex项目的详细步骤,包括项目创建、配置、错误处理等。还提及从Java端建项目嵌入Flex的尝试及相关配置文件知识,如remoting-config.xml和services-config.xml。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、环境:jdk1.6,Flex4.6

2、工具:MyEclipse10

3、server:Tomcat7

4、连接方式:Blazeds

5、项目类型:Flex项目

6、步骤

(1)新建Flex项目一个,命名为FlexToJava

Center

填写项目名之后,点击“下一步”。

229cc788ada2aa017dc8fb2ba94a1081.png

选择BlazeDS,勾选“使用WTP…”,点击下一步,以下默认,完毕新建项目。

新建的项目文件夹例如以下

0f9cd7f638db87a3f5ffb2ce3e0b589c.png

(2)将新建的项目增加到Tomcat中

6dc1f657d734c5ae796affef1294599c.png

启动Tomcat,执行FlexToJava .mxml页面,启动正常。

假设出现启动错误

1c2b7325acccf8368e94e6a99df986a3.png

436708808dcb4d619b5da96ce5e5857c.png

在Tomcat文件夹conf下找到context.xml文件,添加一句就可以

(3)切换到Java端,新建一个Java类FlexToJava.java

406f62d551218a316d1bd3640769b3a9.png

(4)找到WebRoot\WEB-INF\flex文件夹下的remoting-config.xml,添加一段代码用于配置的Java类。这里的id就是Flex页面RemoteObject中的destination属性的值。

com.java.FlexToJava

(5)找到前台的Flex页面——FlexToJava.mxml,写入代码调用后台的Java方法。

详细代码例如以下:

xmlns:s="library://ns.adobe.com/flex/spark"

xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">

import mx.controls.Alert;

import mx.rpc.events.ResultEvent;

protected function button1_clickHandler(event:MouseEvent):void

{

this.ro.getName(this.txt.text);

this.ro.addEventListener(ResultEvent.RESULT,getName);

}

protected function getName(event:ResultEvent):void

{

Alert.show(event.result.toString());

}

//这里有两种处理返回值的方法。一是在RemoteObject中直接写入,另一种是addEventListener

private function error(e:FaultEvent):void {

errorMsg.text=e.message.toString();

}

]]>

然后执行这个Flex文件。获得界面例如以下:

Center

可是会报一个错

Center

[RPC Fault faultString="Send failed"

faultCode="Client.Error.MessageSend"

faultDetail="Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Status 404:

url: 'http://localhost:8080/WebRoot/messagebroker/amf'"]

观察这个错误,发现报的错中url这一项不正确,我们的地址应该是http://localhost:8080/FlexToJava,而非http://localhost:8080/WebRoot。故而要改动一个地方。

进入项目的“属性”菜单,

5eb4898e0115edd3f37b1a86f2a709f3.png

选择Flexserver。发现“内容目录”一项是“WebRoot”字样,记得把Flex编译器中编辑器參数改成

“-services "D:/Workspaces/FlexToJava/WebRoot/WEB-INF/flex/services-config.xml" -locale en_US”。不然会报错。由于Flexserver改动后这边会自己主动把WebRoot改成FlexToJava。要改回来。

(6)又一次部署项目,启动Tomcat,执行FlexToJava.mxml,填入姓名,点击button,弹出对话框。

成功!

这里要注意URL。默认出的URL会少一个out文件夹,须要在执行配置中再配置一下。或者在项目属性菜单中,Flex构建路径菜单下,输出文件夹URL项目填入

Center

后记

试了几回,看能不能一次成功。结果不行,都是要再配置Flexserver中的内容目录,或者别的方法,这是我得出的比較明晰的一种方法了,大概还有更好的。能够一次成型,先凑合用吧。

这是从Flex端建Flex项目,然后嵌入Java的方式。还能够从Java端建Java Web项目。然后嵌入Flex。我试了几回也没成功,仅仅是学到一些别的东西。

从Java端建Java Web项目时。有一步是解压Blazeds.war包,将得到的WEB-INF替换掉新建项目的WEB-INF。这里面主要替换的就是WEB-INF下的flex目录下的四个配置文件、几个必须lib包和web.xml文件。

当中。flex目录下的四个配置文件里的remoting-config.xml文件,我们从中配置了一段代码,这段配置就是指引flex怎样訪问java对象,同一时候也是指引Blazeds配置类映射的功能。

另外这里配置的一定是实现类地址,不能是接口。services-config.xml文件,注冊数据通道,以下这段代码就定义了一个通道。Flex就通过这个通道与server通讯。

上面的url我们有些许似曾相识,与我们上面的一个报错“http://localhost:8080/WebRoot/messagebroker/amf”非常像吧,我们能够看出错误中WebRoot的位置应该放的是context.root(上下文根文件夹)。不知道是中文翻译过来的问题还是什么别的。我们的错误改动了“内容文件夹”的值之后就攻克了,可是这边的意思应该是取的“上下文根文件夹”的值。

关于Blazeds的知识和这几个配置文件的知识,还要继续学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值