注意:这样会出错,可以把

<web-app version="2.4" 
xmlns="
http://java.sun.com/xml/ns/j2ee
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation="
http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

改为:<web-app>)(本人提示:这里经本人测试,并不需要这样更改,本人的测试环境为Eclipse3.4+MyEclipse7.5,不排除在此版本前不需要做更改)


<context-param>
<param-name>flex.class.path</param-name>

<param-value>/WEB-INF/flex/hotfixes,/WEB-INF/flex/jars</param-val
ue>
</context-param>

<!-- Http Flex Session attribute and binding listener support -->
<listener>

<listener-class>flex.messaging.HttpFlexSession</listener-class>
</listener>

<!-- MessageBroker Servlet -->
<servlet>
<servlet-name>MessageBrokerServlet</servlet-name>
<display-name>MessageBrokerServlet</display-name>

<servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
<init-param>
<param-name>services.configuration.file</param-name>

<param-value>/WEB-INF/flex/services-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>MessageBrokerServlet</servlet-name>
<url-pattern>/messagebroker/*</url-pattern>
</servlet-mapping>
3、 将该工程发布到tomcat下,并启动 tomcat。(注:一定要启动tomcat,因为在后面
的设置中,它要验证工程的路径)
4、 然后在该工程上右键Flex Project NatureAdd Flex Project Nature

Flex与Java整合
Flex与Java整合
5、 设置完成后,会发现 web工程的目录结构已经发生了改变,如下图。
我们发现以这种形式建立的工程的目录结构和第二种方法有少许的不同,flex 的
mxml文件默认的放在 src文件夹中,和java文件共用一个目录。并且没有像上一个
工程那样自动的编译出可运行的文件。
Flex与Java整合
配置服务器路径
配置正确的显示
建议不要修改这里的配置

6、 如果你对这个目录结构不太满意,还想让 flex 的文件放在 flex_src 目录下,别急,
我们可以通过右键属性来设置。如下图
Flex与Java整合
在这里你可以重新设置你的 flex源文件夹和输出目录
7、 配置 flex 默认的 sdk。这样配置完,还不行,程序可能还不能正常地运行,还需要
配置他使用的 sdk。如下图
Flex与Java整合
8、 马上就大功告成了,让我们来写个程序测试一下吧。
1)新建一个 java类:Hello.java
package com;

public class Hello {
public String hello(String name){
System.out.println("flex调用我了,真好~~~~");
return "hello "+name;
}
}
2)为flex配置这个要调用的对象,修改WEB-INF/flex下remoting-config.xml
加入:
<destination id="hello">
<properties>
<source>
com.Hello
</source>
</properties>
</destination>

3)编写一个Flex程序
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml "
layout="absolute">
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;

function gg(evnet:ResultEvent):void{
var ff:String = evnet.result as String;
ggg.text = ff;
}

function remotingSayHello():void{
var sname:String = nameInput.text;
h.hello(sname); 
}
]]>
</mx:Script>

<mx:RemoteObject destination="hello" id="h"
result="gg(event)"
endpoint="
http://localhost:8080/flexweb/messagebroker/amf " >

</mx:RemoteObject>


<mx:TextArea id="ggg" x="109" y="122"/>

<mx:Button label="say hello" click="remotingSayHello();"
x="144" y="193"/>
<mx:TextInput id="nameInput" x="109" y="73"/>
<mx:Label text="name" x="47" y="75"/>
</mx:Application>
4)重启tomcat,运行flexweb.mxml.
第三种方法,在编译完后,访问网页会出现 404 异常。具体原因不详。但是它仍会编译出
一个 swf文件,访问这个 swf 即可。而第二种方式可以编译出一个 html 文件。访问一下会出
现一下界面:
输入 dfdff,则输出 hello dfdff。说明调用 java 类成功。不信我们可以看看 java
类在控制台上的打印。
Flex与Java整合
配置成功,高兴吧,o(∩_∩)o…哈哈。
如果用 lcds,则不需要预编译,可以直接访问 mxml 文件,lcds 会动态编译返回结果。(本人提示:其实你可以通过在上面配置中的flex输出目录中访问其html文件例如:
http://127.0.0.1:8080/xxx/xxx_debug/xxx.html

解决:

倒数第11行的404 异常,我对比第二种和第三种发现第三种漏了


这个文件夹,所以解决办法:把漏的文件夹整个从第二种拷一份到项目中、刷新,一定要刷新到到出现
Flex与Java整合

这个文件夹有这些内容,才可以成功。

注:文章中出现的“本人提示”是转载者,不是原作者。
(本人提示:对于第三种方式整合,建议其需要修改的文件全从第二种拷贝,这样能避免一个status404错误)。