2015-08-25 43 views
2

我正在嘗試創建服務,該服務每次都會寫入輸入和輸出管道(xmldata),以便調用已安裝的服務之一。當其他服務被調用時,我的服務應該如何知道?是否有任何內置工具可以捕獲&輸出管道並保存到文件或任何其他來源?集成服務器 - 將管道保存到數據庫

回答

3

您可以使用webMethods的內置的服務之一WmPublic包:

pub.flow:savePipelineToFile 

注意它的不推薦使用‘savePipelineToFile’生產爲明顯的性能/資源的原因。當然,加載從文件的管線使用的:

pub.flow:restorePipelineFromFile 

平時的工作流程在webMethods的調試是:

  1. 添加「savePipelineToFile」的步驟在 你流的第一條指令服務。
  2. 執行流服務或從某個客戶端執行將觸發流服務。
  3. 在流服務中禁用「savePipelineToFile」步驟。
  4. 在您的流量服務最頂端添加「restorePipelineFromFile」步驟。
  5. 以調試模式運行webMethods Designer並逐步完成。一旦 越過「restorePipelineFromFile」步驟,您應該看到 管道的全部內容,包括由 客戶端傳遞的輸入。如果您繼續逐步完成 步驟的流量服務步驟,則應該看到最終輸出的內容。

服務「savePipelineToFile」和「restorePipelineFromFile」對調試服務非常有用。在「管道」的文件將在位於:

IntegrationServer\pipeline 

如果您的需求決定了你需要生成XML平面文件,然後使用以下命令:

要序列文件,XML(WmPublic包)

pub.xml:documentToXMLString 

編寫XML字符串到文件(WmPublic包)

pub.file:stringToFile 

希望它可以幫助!

編輯

默認情況下,SOAP頭是隱藏的。大多數情況下,您不需要soap頭文件,但可以通過執行以下操作強制webMethods將soap頭文件添加到管道中。

1)單擊Web服務描述符。

enter image description here

2)在屬性面板中,設置 「管道接頭已啓用」 爲true。

enter image description here

SOAP標頭將不會出現在您的管道在設計時。它只會在運行時存在。如果你想看到的肥皂頭的內容,那麼你就需要使用「savePipelineToFile」 /「restorePipelineFromFile」我先前所描述的技術。

爲了使SOAP頭出現在設計時,那麼你將不得不做隱式映射到SOAP頭字段,就好像他們在那裏。

+0

但將savePipelineToFile挽救文件包括SOAP頭都XMLDATA? – gudek

+0

你應該在你原來的問題,您還需要肥皂頭(更新我的回答)已經提及。 savePipelineToFile將在webMethod自己的管道XML結構中保存運行時管道中的所有內容。如果這不是你想要的,那麼你將不得不使用「documentToXmlString」在我的答案描述自己序列化管道的文件。 – TchiYuan

相關問題