使用openamp实现FMS与JEE之间的通信
2010-05-26 16:20
190 查看
1. 到openamf网站(http://www.sourceforge.net/projects/openamf)下载openamf压缩包(openamf-1.0RC12.zip),解压;
2. 将openamf.jar拷贝到JEE工程的WEB-INF/lib目录;
3. 将解压目录/src/web/WEB-INF目录下openamf-config.xml和build-webservice.xml两个配置文件拷贝到JEE工程WEB-INF/openamf目录下。当然,也可以自行修改目的目录位置,但是必须相应的更改下一步中web.xml文件中DefaultGateway这个Servlet的init-param值;
4. 在web.xml文件中增加默认网关入口:
<servlet>
<servlet-name>DefaultGateway</servlet-name>
<display-name>DefaultGateway</display-name>
<description>DefaultGateway</description>
<servlet-class>org.openamf.DefaultGateway</servlet-class>
<init-param>
<param-name>OPENAMF_CONFIG</param-name>
<param-value>/WEB-INF/openamf/openamf-config.xml</param-value>
<description>Location of the OpenAMF config file.</description>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>DefaultGateway</servlet-name>
<url-pattern>/gateway</url-pattern>
</servlet-mapping>
5. 其它依赖包。可以根据解压文件中的readme.txt中的说明将解压目录/lib/中的jar包拷贝到项目中,如果不确定全部拷入即可。
6. 在JEE端编写提供给FMS调用的java类,如com.zs.services.openamf.HelloWorld(提供sayHello方法)。
7. FMS端调用:
在调用asc文件前加上load(“netservices.asc”);
在调用方法里加入下面代码:
1) NetServices.setDefaultGatewayUrl(“http://localhost:8080/JeeApp/gateway”);
这一步设置JEE网关,这里的JeeApp为调用的JEE程序名称;
2) var conn = NetServices.createGatewayConnection();
这一步是获取NetConnection连接;
3) conn.call(“com.zs.services.openamf.HelloFMS.sayHello”, resObj, param);
这一步要注意填写完整的调用方法名称,包含所在包的全名;
8. 注意NetConnection的call方法是一个异步调用,调用值不会立即返回,必须通过resObj.onResult函数来处理返回结果。如果调用关系如下:flexàfmsàjee,即flex调用fms的函数,然后fms中的被调用函数又调用了jee中的函数,这个时候flex中第一次call并不能取得fms调用jee的值,这个时候最好通过在fms调用jee的resultObject.onResult中call flex客户端函数,返回结果。
2. 将openamf.jar拷贝到JEE工程的WEB-INF/lib目录;
3. 将解压目录/src/web/WEB-INF目录下openamf-config.xml和build-webservice.xml两个配置文件拷贝到JEE工程WEB-INF/openamf目录下。当然,也可以自行修改目的目录位置,但是必须相应的更改下一步中web.xml文件中DefaultGateway这个Servlet的init-param值;
4. 在web.xml文件中增加默认网关入口:
<servlet>
<servlet-name>DefaultGateway</servlet-name>
<display-name>DefaultGateway</display-name>
<description>DefaultGateway</description>
<servlet-class>org.openamf.DefaultGateway</servlet-class>
<init-param>
<param-name>OPENAMF_CONFIG</param-name>
<param-value>/WEB-INF/openamf/openamf-config.xml</param-value>
<description>Location of the OpenAMF config file.</description>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>DefaultGateway</servlet-name>
<url-pattern>/gateway</url-pattern>
</servlet-mapping>
5. 其它依赖包。可以根据解压文件中的readme.txt中的说明将解压目录/lib/中的jar包拷贝到项目中,如果不确定全部拷入即可。
6. 在JEE端编写提供给FMS调用的java类,如com.zs.services.openamf.HelloWorld(提供sayHello方法)。
7. FMS端调用:
在调用asc文件前加上load(“netservices.asc”);
在调用方法里加入下面代码:
1) NetServices.setDefaultGatewayUrl(“http://localhost:8080/JeeApp/gateway”);
这一步设置JEE网关,这里的JeeApp为调用的JEE程序名称;
2) var conn = NetServices.createGatewayConnection();
这一步是获取NetConnection连接;
3) conn.call(“com.zs.services.openamf.HelloFMS.sayHello”, resObj, param);
这一步要注意填写完整的调用方法名称,包含所在包的全名;
8. 注意NetConnection的call方法是一个异步调用,调用值不会立即返回,必须通过resObj.onResult函数来处理返回结果。如果调用关系如下:flexàfmsàjee,即flex调用fms的函数,然后fms中的被调用函数又调用了jee中的函数,这个时候flex中第一次call并不能取得fms调用jee的值,这个时候最好通过在fms调用jee的resultObject.onResult中call flex客户端函数,返回结果。
相关文章推荐
- C# 使用MEF动态加载不同的userControl,并实现不同userControl之间通信
- 使用DNode实现php和nodejs之间通信的简单实例
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- 使用BTstack实现IOS设备与非IOS设备之间的通信
- linux 使用/proc文件系统 实现用户空间与内核模块之间通信
- 使用Broadcast实现android组件之间的通信
- 实现两台MPTCP主机之间的通信——VSFTPD的配置与使用
- Android使用Handler实现子线程与子线程、主线程之间通信
- Android 使用Messenger实现跨进程之间通信
- 使用Handler实现Service和Activity之间的双向通信
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- 使用DNode实现php和nodejs之间通信的简单实例
- Android中使用开源框架EventBus3.0实现Fragment之间的通信交互
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Windows使用自定义消息实现进程之间通信
- 如何使用socket实现unity和Winform之间通信
- Linux进程间通信-----使用数据报套接字实现两个进程之间的通信
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- 使用BTstack实现IOS设备与非IOS设备之间的通信
- 【转】Android使用Fragment来实现ViewPager的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信