导航

Orchestration调用带SOAPHeader的Web Service

Posted on 2007-12-31 14:10  鸡尾虾的壳  阅读(251)  评论(0编辑  收藏  举报
Orchestration调用Web Service的简明步骤:

   1.添加Web Reference,设定wsdl地址;VS根据wsdl自动生成Web Port,xsd 
          
   2.在Port Panel中新建Port,选择已有的Web Port类型。

   3.新建自动生成xsd类型的Message。

   4.在Orchestration Panel上,使用Receive Shape与色Send Shape通过Web Port调用WS并接受Response消息。

   如果WS没有有使用WSE,那么项目部署后与逻辑Web Port绑定的物理Port使用SOAP Adapter,Port的uri是WS的asmx地址。


如果WS中包含SOAP Header:

   从Reference.xsd中,可以看到SOAPHeader类的xsd形式。但是,Orchestration不支持直接把SOAPHeader传送给Web Port。事实上,SOAPHeader部分是作为Message的Context Field部分传递的。

  具体的实现方法如下:新建一个Property Schema,设置其Target Namespace属性值为:http://schemas.microsoft.com/BizTalk/2003/SOAPHeader.建立一个Property,设置其Property Schema Base属性值为MessageContextPropertyBase. 在Orchestration中可以通过Message(Property Namespace.PropertyName)来设定SOAPHeader部分的xml消息片段。


疑问:MessageContextPropertyBase类型的Property值长度不能超过255,SOAPHeader部分的长度超过255是很容易发生的????????