Java和.NET应用程序的互操作性

时间:2011-09-12 10:40:07

标签: java .net interop

我有一个Java应用程序和一个.NET应用程序,它们都驻留在两台不同的机器上,需要在这两个应用程序之间设计一个通信层。任何输入或想法都会非常有用。下面提到的是这两个应用程序之间的交互性质。

  • Java应用程序将大量数据发送到.NET应用程序
  • 数据延迟应保持在最低
  • .NET应用程序也应该能够请求某些数据(同步/异步)

6 个答案:

答案 0 :(得分:6)

最简单的方法.Net和Java可以谈论的是使用Web服务 - 我们在公司取得了很大的成功(在.Net方面使用apache的cxf和标准代码)。

但是如果延迟和大小是主要要求,那么你应该使用Sockets - 这两个平台都提供了相当广泛的socketing框架,它可以为你提供最好的性能。

答案 1 :(得分:1)

我认为这可以通过在java端设置xml webservices层来完成。您可以使用RestEasy来提供宁静的Web服务。只是我的0.2美分。

答案 2 :(得分:1)

另一种替代方案是某种形式的MOM(面向消息的中间件)。有很多实现,但首先要看的可能是ActiveMQ,因为它同时具有Java和C#绑定(等等)。

我并不是说这比使用网络服务更好,这完全取决于您的要求。

答案 3 :(得分:0)

我们在使用JAX-WS(Java 6中的标准运行时的一部分)提供Web服务方面有很好的经验。他们明确地将.NET兼容性列为目标,并且在IDE中得到很好的支持。

Endpoint.publish()机制允许小型,简单的部署。

答案 4 :(得分:0)

您可以使用Web服务。 Jax-WS是java中的API,允许您使用它。作为此API的实现,我建议使用metro(http://metro.java.net/),这已经与SDK一起提供,并且与netbeans有很好的集成。

正如有人提到的那样,您可以使用套接字,并在其上创建一个通信通道,但这有一些问题,从安全性开始。不要在现实生活中使用它。

如果您需要有关此主题的帮助,可以开始阅读: Getting started with JAX-WS

答案 5 :(得分:0)

这实际上取决于您的要求。简单的方法通常是Web服务。但是,如果您希望在其他平台上获得更高的性能或更精细的API访问权限,您可能需要考虑JNBridgePro(www.jnbridge.com)。

披露:我为JNBridge工作。