- 浏览: 716606 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (389)
- flex (150)
- java (55)
- flex_sharedObject (4)
- iphone/android (7)
- red5 (4)
- blazeds (19)
- ajax (3)
- flex&java (9)
- 聊天室 (2)
- flex的问题 (1)
- game (8)
- flex_xml (1)
- flex组件学习 (2)
- JGroups (1)
- 中转站 (2)
- ruby (7)
- flex_js (5)
- C/C++ (14)
- perl (2)
- db (13)
- air (10)
- hibernate (8)
- flash_flex_as_3d (2)
- struts (4)
- dwr (8)
- freemarker (2)
- AS (22)
- 工具 (6)
- js_jquery_ext_yui (4)
- .net (1)
- C# (1)
- 前端 (1)
最新评论
-
136900923:
您好,您的代码我不是很懂,我想跟您交流一下,我的qq邮箱:13 ...
hibernate做无限极菜单树如此简单 -
fykyx521:
两个同一个功能
flex_flush_Socket 安全沙箱解决 -
ustb:
你上下两个代码类之间没关系
flex_flush_Socket 安全沙箱解决 -
u010656335:
...
flex发送QQ表情 -
u010656335:
flex发送QQ表情
原来就是flex 和C#通讯的框架fluorinefx
flex 和java通讯的框架blazdes 这两个框架直接交互。把flex那块抛弃
c#通过fluorinefx调用java,java通过blazeds来调用c#
光写了C#调用java,java调用C# 还没写,瞌睡的不行了!
好处就是AMF貌似快,比xml传输更简单!
using System; using FluorineFx; using FluorineFx.Net; using FluorineFx.Messaging.Api; using FluorineFx.Messaging.Api.Service; using FluorineFx.AMF3; namespace AMFCall { class Program { NetConnection _netConnection; static void Main(string[] args) { Program program = new Program(); //program.ConnectStr();//传递字符串,返回字符串 //program.ConnectgetObj();//返回java对象 program.Connect();//传递C#对象到java端,并返回java对象 System.Console.ReadLine(); } public void ConnectStr() { // Create NetConnection client _netConnection = new NetConnection(); _netConnection.ObjectEncoding = ObjectEncoding.AMF3; _netConnection.NetStatus += new NetStatusHandler(_netConnection_NetStatus); //_netConnection.Connect("http://localhost:2896/WebSite/Gateway.aspx"); _netConnection.Connect("http://localhost:8080/blazeds/messagebroker/amf"); System.Console.WriteLine("*** Flash RPC ***"); // _netConnection.Call("ServiceLibrary.MyDataService.GetCustomers", new GetCustomersHandler(), new object[] { "415" }); System.Console.WriteLine("*** Flex RPC ***"); //_netConnection.Call("my-amf", "fluorine", "ServiceLibrary.MyDataService", "GetCustomers", new GetCustomersHandler(), new object[] { "415" }); _netConnection.Call("my-amf", "net", "net.Hello", "sayHello", new RemoteHandler(), new Object[] { "415" }); System.Console.WriteLine("Press 'Enter' to exit"); } public void ConnectgetObj() { // Create NetConnection client _netConnection = new NetConnection(); _netConnection.ObjectEncoding = ObjectEncoding.AMF3; _netConnection.NetStatus += new NetStatusHandler(_netConnection_NetStatus); //_netConnection.Connect("http://localhost:2896/WebSite/Gateway.aspx"); _netConnection.Connect("http://localhost:8080/blazeds/messagebroker/amf"); System.Console.WriteLine("*** Flash RPC ***"); // _netConnection.Call("ServiceLibrary.MyDataService.GetCustomers", new GetCustomersHandler(), new object[] { "415" }); System.Console.WriteLine("*** Flex RPC ***"); //_netConnection.Call("my-amf", "fluorine", "ServiceLibrary.MyDataService", "GetCustomers", new GetCustomersHandler(), new object[] { "415" }); _netConnection.Call("my-amf", "net", "net.Hello", "sayHelloObj", new RemoteHandler(), new Object[] { "415" }); System.Console.WriteLine("Press 'Enter' to exit"); } public void Connect() { // Create NetConnection client _netConnection = new NetConnection(); _netConnection.ObjectEncoding = ObjectEncoding.AMF3; _netConnection.NetStatus += new NetStatusHandler(_netConnection_NetStatus); //_netConnection.Connect("http://localhost:2896/WebSite/Gateway.aspx"); _netConnection.Connect("http://localhost:8080/blazeds/messagebroker/amf"); System.Console.WriteLine("*** Flash RPC ***"); // _netConnection.Call("ServiceLibrary.MyDataService.GetCustomers", new GetCustomersHandler(), new object[] { "415" }); System.Console.WriteLine("*** Flex RPC ***"); net.NetJavaObj nj = new net.NetJavaObj(); nj.id = 88; nj.name = "sdfafa"; //_netConnection.Call("my-amf", "fluorine", "ServiceLibrary.MyDataService", "GetCustomers", new GetCustomersHandler(), new object[] { "415" }); _netConnection.Call("my-amf", "net", "net.Hello", "sayHelloNet", new RemoteHandler(), new Object[] { nj}); System.Console.WriteLine("Press 'Enter' to exit"); } void _netConnection_NetStatus(object sender, NetStatusEventArgs e) { string level = e.Info["level"] as string; if (level == "error") { //received an error System.Console.WriteLine("Error: " + e.Info["code"] as string); } if (level == "status") { System.Console.WriteLine("Status: " + e.Info["code"] as string); } } } public class RemoteHandler : IPendingServiceCallback { public void ResultReceived(IPendingServiceCall call) { object result = call.Result; Type type = call.Result.GetType(); Console.WriteLine(type.Name); Console.WriteLine("result" + result); //NetJavaObj nj = (NetJavaObj)result; //Console.WriteLine("i" + nj.id + "//name:" + nj.name); //Console.ReadLine(); } } public class GetCustomersHandler : IPendingServiceCallback { public void ResultReceived(IPendingServiceCall call) { object result = call.Result; System.Console.WriteLine("Server response: " + result); //DataAccess sample sends back an ArrayCollection (AMF3) ArrayCollection items = result as ArrayCollection; foreach (object item in items) { Flex.CustomerVO customer = item as Flex.CustomerVO; System.Console.WriteLine(customer.firstname + " " + customer.lastname); } } } }
using System;
using System.Collections.Generic; using System.Text; namespace net { class NetJavaObj { public int id; public String name; } }
package net;
import flex.messaging.io.ClassAliasRegistry; public class Hello { public String sayHello(String name){ return name+"afan"; } public NetJavaObj sayHelloObj(String name){ return new NetJavaObj(1,name); } public NetJavaObj sayHelloNet(NetJavaObj obj){ System.out.println(obj.getId()+":"+obj.getName()); obj.setId(323); obj.setName("afan"); return obj; } /** * @param args */ public static void main(String[] args) { } }
package net;
import flex.messaging.io.ClassAliasRegistry; public class NetJavaObj { private int id; private String name; public NetJavaObj(int id, String name) { super(); this.id = id; this.name = name; } public NetJavaObj() { super(); this.id = id; this.name = name; } /** * @param args */ public static void main(String[] args) { } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
blazeds配置文件remoting-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service" class="flex.messaging.services.RemotingService"> <adapters> <!-- <adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/> --> <adapter-definition id="java-object" class="test.Adapter" default="true"/> </adapters> <default-channels> <channel ref="my-amf"/> </default-channels> <destination id="net"> <properties> <source>net.Hello</source> </properties> </destination> </service>
test.Adapter
package test;
import flex.messaging.io.ClassAliasRegistry; import flex.messaging.messages.Message; import flex.messaging.services.remoting.adapters.JavaAdapter; public class Adapter extends JavaAdapter { @Override public Object invoke(Message message) { System.out.println("invoke"); Object obj=null; try{ //不太清楚是调用之前注册还是调用之后注册,注册后C#就直接转成相应的对象, //而不是ASObject ClassAliasRegistry cr=ClassAliasRegistry.getRegistry(); cr.registerAlias("net.NetJavaObj", "net.NetJavaObj"); obj=super.invoke(message); cr.registerAlias("net.NetJavaObj", "net.NetJavaObj"); }catch(Exception e){ e.printStackTrace(); } return obj; } }
评论
2 楼
sulanyan29
2012-04-11
楼主 你好 有个问题想问下,为什么你的NetJavaObj等类没有用到ClassAliasRegistry类,却还要在前面引入包
import flex.messaging.io.ClassAliasRegistry;呢?
import flex.messaging.io.ClassAliasRegistry;呢?
1 楼
hcb163
2011-09-22
发表评论
-
C# 调用java同步类
2010-05-10 09:12 2132NetConnection 是发送的异步http请求, ... -
BlazedsUtil 测试类
2009-12-01 18:47 829package cn.ishion.util; //很简单, ... -
blazes NetConnection.Call.BadVersion
2009-11-01 22:00 1599<mx:RemoteObject destination ... -
java amf压缩
2009-10-25 18:43 3356http://www.5uflash.com/flashjia ... -
java amf
2009-10-25 18:41 1279http://www.5uflash.com/flashjia ... -
spring-blazeds
2009-09-22 11:09 1065http://www.riameeting.com/node/ ... -
Netconnection连接blazeds
2009-09-11 18:13 1054package { import flash.event ... -
blzeds+hibernate+flex保存对象失败
2009-09-09 14:16 1746session.saveOrupdate(Object obj ... -
blazeds_Detected duplicate HTTP-based FlexSessions
2009-09-09 00:41 3585http://blog.sina.com.cn/s/blog_ ... -
blazeds-data-push-with-remote-objects
2009-07-01 19:10 1726http://codeofdoom.com/wordpress ... -
blazeds向客户端推送数据
2009-07-01 19:02 3259blazeds推送技术至Flex zz 转自http:// ... -
blazeds服务器给客户端发送消息
2009-07-01 18:57 1680private String clientID = UUIDU ... -
blazeds AMFConnection java client
2009-06-30 10:30 2309客户端 as AmFconnection http://aca ... -
flex _blazeds之动态配置message
2009-06-26 09:28 2056api说的继承这个就可以。基本是官方的例子 package ... -
flex调用java方法注意地方
2009-05-23 17:13 2880java代码中不能写重载的方法,否则flex不会调用,写不报错 ... -
blazeds在服务器端取得发送消息内容
2009-05-12 10:01 1900突发奇想看了下源代码,写了个简单的类,因为 messaging ... -
flex message suptopic filter使用subtopic过滤信息
2009-05-09 03:17 1484官方说明,看的真晕,谁有blazeds中文翻译麻烦给一份 I ... -
blazeds message filter 过滤消息——在聊天室的应用
2009-05-09 02:09 3822代码都是官方的,因为我在本地测试,所以得设置channelSe ...
相关推荐
这是一个DEmo,讲解了Unity 3D的编译顺序,以及C# 和 JavaScript 代码之间的变量相互调用,简单明了!
在C#中调用Java代码时,你需要定义一个接口,该接口映射到Java中的类,然后使用`CreateJavaProxy`方法创建Java对象的代理。同样,在Java中调用C#代码时,你需要定义一个.NET接口,并在Java代码中使用`CreateNetProxy...
Java程序调用.NET/C#的Web服务是一种跨平台的交互方式,主要依赖于SOAP(Simple Object Access Protocol)协议,使得不同编程语言开发的应用程序能够相互通信。在本场景中,用户已经提供了一个.NET的Web服务,而我们...
为了使两者能够互相调用,我们需要一个中间层,这个中间层通常是通过Java Native Interface (JNI) 实现的。然而,对于更简单的场景,如调用Java的预编译类库(jar文件),我们可以利用IKVM.NET这样的开源项目,它...
虽然Java和C#是不同的编程语言,但通过Web服务,它们可以相互通信。Java使用JAX-WS(Java API for XML Web Services)或者JAX-RS(Java API for RESTful Web Services)来创建和消费Web服务,而C#则使用.NET框架中...
在IT领域,跨平台开发和不同语言间的交互是常见的需求,C#和Java作为两种广泛应用的编程语言,有时需要在同一个项目中互相调用函数或访问变量。以下将详细讲解如何实现这一目标。 1. 在JavaScript中访问C#函数: -...
在开发使用Unity引擎制作的游戏或应用程序时,有时需要在Unity的C#脚本与Android平台上的Java代码之间进行相互调用,以实现特定的功能。这种需求通常出现在接入特定的SDK、使用原生设备功能、或者进行特定业务逻辑...
标题中的"C# Java互相转换工具"指的是一个软件或库,旨在帮助开发者在C#和Java之间进行代码迁移或互操作。这个工具可能是为了方便那些在两个不同平台间工作或者需要跨语言共享代码的开发人员。从描述中的链接来看,...
9. **互操作性**:Java和C#之间能够互相调用Web服务,得益于它们对标准协议如SOAP的共同支持,以及像WSDL这样的描述语言,使得不同语言的客户端能够理解服务的接口。 在实际应用中,开发者需要注意网络环境、权限...
描述简短地指出,通过打包Java的Class文件成JAR,然后使用IKVM工具将其转换为C#可用的DLL,可以实现C#对Java类的调用,体现了“拿来主义”的编程思想,使得不同语言间的代码能够互相利用。 标签"软件开发"表明这个...
标题中的"C++/java/C#语言的AES加密解密"涉及到的是三种常用编程语言——C++、Java和C#在实现AES(Advanced Encryption Standard,高级加密标准)算法上的应用。AES是一种广泛使用的对称加密算法,它在信息安全领域...
这些系统作为消息传递的中介,使得Java和C#应用可以在不直接互相依赖的情况下交换数据。 最后,对于特定场景,例如游戏开发,Unity引擎提供了一个混合环境,允许开发者使用C#和Java(通过Unity的插件系统)编写代码...
Web Service是一种基于互联网的、平台无关的、标准的通信方式,使得不同的应用程序可以相互通信和交换数据。在这个示例中,C#作为服务提供者,通过创建一个ASMX(ASP.NET Web Service)服务,暴露了可供外部调用的...
15. **构造函数的相互调用**:C#中,一个构造函数可以通过`this`关键字调用本类的其他构造函数,以便代码复用。示例代码展示了如何在构造函数中使用`this`调用其他构造函数。 16. **运算符重载**:C#支持运算符重载...
### C# 调用 Java 开发的 WebService 在跨平台、跨语言的应用系统集成中,WebService 技术作为一种标准的解决方案被广泛采用。它允许不同编程语言编写的程序之间进行通信。本文将详细介绍如何使用 C# 来调用 Java ...
3. **Java和C#互相调用**:要实现Java和C#之间的互相调用,可能需要借助中间件,如FRP(函数响应式编程)框架或者自定义的RPC(远程过程调用)机制。这通常涉及到序列化和反序列化,将对象转换成可以在网络上传输的...
1. 在Unity中,我们需要定义一个C#类来封装Java插件的调用。 ```csharp using UnityEngine; using System.Runtime.InteropServices; public class JavaCallWrapper : MonoBehaviour { [DllImport("libunity", ...