【问题标题】:Consume java web service in Biztalk在 Biztalk 中使用 java web 服务
【发布时间】:2011-09-13 08:49:26
【问题描述】:

我引用了一个用 java 编写的 Web 服务。我需要在我的 BizTalk 项目中使用它。所以我通过 Add Service Reference - Advanced - Add Web Reference 添加引用,因为 java web 服务不是 WCF 服务。好的,VS 为我的服务生成 XSD 和 ODX。但是当我尝试编译项目时,我得到了非常奇怪的错误“XXX 类型的声明中缺少部分修饰符;该类型的另一个部分声明存在”here 描述了相同的错误。

我认为我错过了一些东西,所以我创建了一个全新的解决方案,在那里添加了一个控制台应用程序,添加了 Web 引用,并且成功构建了该解决方案。因此,我可以得出结论,只有在 BizTalk 解决方案中添加 Web 服务引用时才会出现错误。

我尝试手动修复错误,打开 Reference.map.cs 文件,在生成的命名空间中添加“.Biztalk”后缀,一切编译成功。它真的是 BizTalk 项目的代码生成器中的错误还是我遗漏了什么?

【问题讨论】:

  • 您是否尝试过创建一个全新的 BizTalk 项目和解决方案并再次添加 Web 引用?
  • @Fabio,我当然有。同样的结果。我怀疑 Java Web 服务没有正确实现,但是在我创建了一个控制台应用程序后,我得出结论,它是 biztalk 代码生成器,无法创建正确的文件。

标签: web-services biztalk


【解决方案1】:

不确定,我从未见过那个错误...

但是,我要做的是创建一个类库项目并在此处添加 Web 引用。然后,您可以在 SOAP 发送端口中使用它,如 here 所述(参见第 5 点)。您还可以直接引用 BizTalk 项目中的类库。既然您说 Web 引用在控制台应用程序中工作,也许这可以工作......

此外,您可以直接使用 XSD 架构 - 但这需要更多的工作。您将不得不在编排或自定义管道组件中手动提升几个属性。您可以在this post 上找到更多详细信息(网站目前已关闭,但希望最终会重新上线)。

最后,您还可以尝试使用 httpBinding 的 WCF 适配器。这是为互操作而设计的,只要您拥有定义消息的架构,它就应该可以工作。

祝你好运!

【讨论】:

  • 谢谢。最后我让它工作了。我所做的如下:使用 Add Web Reference 向导我生成了由于命名空间问题而无法编译的代码。然后我删除了除服务 xsd 之外的所有文件。然后我使用 Add New Item 添加了一个编排,并在其中创建了一个新的端口类型。之后,我将编排设置为使用我定义的端口类型,并创建了在服务 xsd 文件中定义且端口类型所需的类型的输入和输出消息。然后我使用 BizTalk Server Administration 设置了一个发送端口,终于成功了。
猜你喜欢
  • 1970-01-01
  • 2016-02-29
  • 1970-01-01
  • 2011-01-12
  • 1970-01-01
  • 2010-10-07
  • 2016-02-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多