我正在尝试创建服务,每次都写入输入和输出管道(xmldata),调用已安装的服务之一。当调用其他服务时,我的服务应该如何知道?是否有任何内置工具可以捕获输入和输出管道并保存到文件或任何其他来源?
1 回答
您可以在包中使用 webMethods 的内置服务之一WmPublic
:
pub.flow:savePipelineToFile
请注意,出于明显的性能/资源原因,不建议在生产中使用“savePipelineToFile” 。当然,要从文件中加载管道,请使用:
pub.flow:restorePipelineFromFile
在 webMethods 中进行调试的通常工作流程是:
- 添加“savePipelineToFile”步骤作为流服务中的第一条指令。
- 执行流服务或从将触发流服务的某些客户端执行。
- 禁用流服务中的“savePipelineToFile”步骤。
- 在流服务的最顶部添加“restorePipelineFromFile”步骤。
- 在调试模式下运行 webMethods Designer 并单步执行。一旦完成“restorePipelineFromFile”步骤,您应该会看到管道的全部内容,包括客户端传递的输入。如果您继续逐步执行流程服务,那么您应该会看到最终输出是什么。
服务“savePipelineToFile”和“restorePipelineFromFile”对于调试您的服务非常有用。“管道”文件将位于:
IntegrationServer\pipeline
如果您的要求要求您需要生成 xml 平面文件,请使用以下内容:
将文档序列化为 xml(WmPublic 包)
pub.xml:documentToXMLString
将 xml 字符串写入文件(WmPublic 包)
pub.file:stringToFile
希望能帮助到你!
编辑:
默认情况下,soap 标题是隐藏的。大多数情况下,您不需要soap 标头,但您可以强制webMethods 通过执行以下操作将soap 标头添加到管道中。
1) 单击 Web 服务描述符。
2) 在属性面板中,将“Pipeline Headers Enabled”设置为 true。
在设计时,soap 标头不会出现在您的管道中。它只会在运行时存在。如果您想查看soap 标头的内容,则需要使用我之前描述的“savePipelineToFile”/“restorePipelineFromFile”技术。
要使soap 标头出现在设计时,您必须对soap 标头字段进行隐式映射,就好像它们在那里一样。