JNBridge提供了跨越Java与.NET代码的分布式事务支持
作者 Jonathan Allen 译者 张龙 发布于 2009年12月28日 上午5时5分
.NET,
Java
主题
互操作,
事务处理
标签
JNBridge
凭借JNBridge技术,Java和.NET代码无需交叉编译器就可以实现对象共享。所有Java代码运行在JVM上,而.NET代码则运行在CLR上。在该方案下,JVM和CLR可以运行在不同的机器上,也可以运行在一台机器的不同进程上,甚至还能运行在相同的进程上。从开发者的角度来看,运行在其他虚拟机上的对象仅仅是代理的远程对象而已。JNBridge有着悠久的历史,其首个版本发布于2002年6月。Adobe的ColdFusion是其最知名的客户,我们曾于2007年首度报道其对.NET的支持。
最新版的JNBridge可以轻松实现跨越虚拟机的分布式事务。其过程用两个字来说就是——简单。虽然开发者总是可以手工实现两阶段提交所需的工作,但借助于JNBridge 5.0,这一切都变得无比简单了,它能够帮助我们看管.NET一边的System.Transaction以及Java一边的javax.transaction。除了一些配置和对JavaTM.enable或是DotNetTM.enable的调用外,一切都和本地事务毫无二致。
要想使用JNBridge,开发者需要熟悉代理生成工具。该工具既可以独立运行,也可以作为Eclipse和Visual Studio的插件运行。其Eclipse版本证明了JNBridge的强大所在,因为它实际上是用.NET/WinForms开发的。
GUI可以两种方式运行,嵌入在WinForms和WPF中的Java AWT和Swing组件。很多公司都采取了这种方式:用Java构建了非常专业的控件(比如分子观测仪)并希望将其技术移植给.NET开发者而不想进行大量的迁移工作。
目前,JNBridge官方还没有支持Mono和Silverlight的计划。虽然JNBridge的底层技术同样适用于Mono和Silverlight 4,但如果出错开发者只能依靠自己的力量去解决。与此形成鲜明对比的是,受支持的平台则具有丰富的文档。
分享到:
相关推荐
整合的方式多种多样,包括使用SOAP、WSDL、UDDI等标准协议,以及使用第三方工具如Microsoft的.NET Framework与Java的互操作性库(如JNBridge)来实现.NET和Java应用程序之间的无缝对接。 综上所述,.NET与Java的...
本示例提供了“一个Java与DotNet集成的应用程序例子代码”,旨在帮助开发者理解如何在Java和Microsoft的.NET框架之间建立通信,以实现互操作性。在这个案例中,我们看到项目是用VS2005(Visual Studio 2005)开发的...
2. 分布式对象:使用Java本地接口(JNI,Java Native Interface)实现与C样程序的集成,开发人员能够用一个C的头文件生成一个JNI的存根(stub),其中JNI和C++代码通信,C++代码会调用C#代码。 Java EE和.NET的互...
在Java开发中,有时我们需要与不同的数据库系统交互,而ADO.NET是Microsoft提供的一个强大的数据访问接口,主要用于.NET Framework。然而,由于跨平台的需求或者特定场景的应用,开发者可能会尝试在Java环境中利用...
JNI是Java提供的一种接口,允许Java代码与其他语言(如C#)编写的代码进行交互。在C#中,我们可以使用Java的JNI头文件和库来创建一个本地方法,该方法可以在Java中被调用,反之亦然。这种方法需要对C++有一定了解,...
这个工具将Java字节码转换为.NET Framework的IL(中间语言),从而实现了Java与.NET之间的互操作性。 1. **IKVM的工作原理**: - IKVM首先通过一个JVM(Java虚拟机)实现,将Java字节码转换为.NET可理解的IL代码。...
5. **第三方库**:由于Java和.NET之间的互操作性不是直接的,可能使用了诸如JNBridge或其他类似的库来实现Java和ADO.NET的通信。 6. **数据库编程**:项目可能包含如何在Java中创建、查询、更新和删除数据库记录的...
这些工具允许.NET代码与Java字节码交互,使得Java对象可以在.NET环境中使用。 3. **语言转换**: 转移Java代码至C#时,需要理解两种语言的语法差异。例如,Java的接口在C#中对应为接口,类和方法的访问修饰符、...
5. **Java**: 虽然 Java 不是 .NET 部分,但 .NET 提供了与 Java 对象互操作的工具,如 JNBridge 或 IKVM.NET,使得 .NET 应用可以调用 Java 库或与 Java 平台集成。 6. **PDG 文件**: 提到的 "Microsoft.NET 精髓...
5. **Java-.NET Bridge** 或 **Interop Services**:还有一些第三方库如JNBridge,它们提供了一种简单的方式来实现Java和.NET之间的互操作,包括调用C# DLL。 在资源包`JavaAddC#Dll`中,可能包含了使用这些技术的...
这种技术通常依赖于诸如.NET Framework的`System.Runtime.InteropServices`命名空间下的`DllImport`特性,或者使用更高级的互操作工具,如JNBridge、 IKVM.NET 或者使用Apache的JNI(Java Native Interface)。...
1. **Java与.NET互操作性**:Ikvm提供了一种桥梁,使得Java和.NET之间的互操作成为可能。通过它的转换机制,Java代码可以被编译为IL(中间语言),进而被.NET Framework理解和执行。 2. **DLL转换**:Ikvm将Java的`...
虽然原生的PDFBox是用Java编写的,但通过.NET平台的Java interop技术,如 IKVM.NET 或 JNBridge,可以在.NET环境中使用PDFBox的功能。PDFBox-0.7.3DLL很可能是将PDFBox库转换为.NET可使用的DLL格式,使得.NET开发者...
5. 云平台:Azure和Google Cloud Platform等云服务商提供了对.NET和Java的全面支持,使得跨平台的应用部署变得更加便捷。 6. 大数据和AI:在大数据处理(如Hadoop)和人工智能(如TensorFlow)领域,两者都有各自的...
JNBridge则提供了一种无需编写中间层代码的方法,直接在Java和.NET之间建立连接。 另外,还可以利用中间件或消息队列系统,如Apache Kafka、RabbitMQ或Apache ActiveMQ,实现异构系统的通信。这些系统作为消息传递...
在Java开发中,有时我们需要与不同的数据库系统交互,而ADO.NET是微软提供的一个强大的数据访问接口,主要用于.NET Framework。然而,由于跨平台的需求或者特定场景的应用,开发者可能会尝试在Java环境中利用ADO.NET...
在ASP.NET中,开发者可能需要通过.NET与Java交互,这通常需要用到JNBridge、 IKVM.NET 这样的技术,它们允许.NET程序调用Java类库或反之。 "Java反编译.sln" 是Visual Studio的解决方案文件,它包含了项目的配置...
首先,C#与Java之间的互操作性主要通过.NET框架的Java互操作服务(也称为JNBridge或Java.NET)实现。这种技术允许C#代码直接调用Java方法,就像调用本地.NET库一样,实现了.NET和Java平台之间的无缝集成。 BioJava...
有一些第三方库,如JNBridge,提供了直接在Java和.NET之间建立桥梁的功能。它们处理了底层的互操作性问题,使Java可以直接调用.NET DLL,包括C#的。 6. **C++/CLI中间层** C++/CLI是微软为.NET平台设计的一种C++...
此外,如果开发者熟悉.NET环境,但希望利用Spring-ORM的高级特性,可以通过JNBridge等技术实现在.NET中的Java代理,从而调用Spring-ORM的功能。这种方式虽然增加了开发复杂性,但在特定场景下,如需要利用现有.NET...