WCF与java Web服务的通信

时间:2010-09-21 19:00:15

标签: c# java wcf web-services glassfish

背景 我主要是一名在Java方面经验有限的.Net开发人员。我有一个WCF Web服务,需要与第三方Message Queue服务器通信才能发送和接收文件。第三方提供了Java API以访问其Message Queue Server。

我已经对前进的最佳方式进行了一些研究,现在我想从有类似情况经验的人那里得到一些反馈。

经过一番挖掘后,我确定了一个选项是在Eclipse中创建一个java Web服务并将其托管在Glassfish上。这个java webservice将引用:

  1. 第三方提供的java api,允许第三方将xml文件发送给我们。
  2. 我现有的WCF服务,以便传递要处理的xml。
  3. 因此传入的xml文件将按如下方式流动:

    第三方 - > Java WS - > WCF WS

    由于我的WCF Web服务还可以启动与第三方的通信,因此此传入流量只是公式的一半。所以我也需要一个外向的流程。

    1. 一种选择是从我的WCF服务引用Java WS。然而,2个Web服务将各自相互引用。当2个Web服务相互引用时,这被视为循环引用(不良做法)吗?
    2. 如果选项1被视为不良做法,我的另一个选择是让其中一个网络服务轮询其他服务。
    3. 其他选择?
    4. 摘要问题 1.对上述循环网络参考问题的任何见解? 我一般走在正确的轨道上吗? 3.您可以提供任何建议或个人经验吗?

      非常感谢您的见解。

1 个答案:

答案 0 :(得分:1)

我的第一个想法是,如果它是一个快速的RPC类型调用,只要你为回调调用不同的Web服务,我就不会太关注循环引用。从技术上讲,你是“通过合同”发送消息所以一个好的做法是将你的合同定义放在与服务实现不同的项目中。

如果.NET处理需要一些时间,那么使用消息队列和工作服务也是值得的。

另一个考虑因素是找出他们实际使用的MQ基础设施。您可以完全避免使用Web服务,因为有许多MQ提供程序的.NET连接器,例如

MSMQ(显然)

ActiveMQ http://activemq.apache.org/nms/

&安培; WebSphere MQ http://www.redbooks.ibm.com/abstracts/sg247012.html

仅举几例。还有MSMQ桥梁。