【问题标题】:Integration Server - save pipeline to database集成服务器 - 将管道保存到数据库
【发布时间】:2015-09-10 21:58:21
【问题描述】:

我正在尝试创建服务,每次都写入输入和输出管道(xmldata),调用已安装的服务之一。当调用其他服务时,我的服务应该如何知道?是否有任何内置工具可以捕获输入和输出管道并保存到文件或任何其他来源?

【问题讨论】:

    标签: integration webmethods


    【解决方案1】:

    您可以在WmPublic 包中使用 webMethods 的内置服务之一:

    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) 点击网络服务描述符。

    2) 在属性面板中,将“Pipeline Headers Enabled”设置为 true。

    soap 标头在设计时不会出现在您的管道中。它只会在运行时存在。如果您想查看soap 标头的内容,则需要使用我之前描述的“savePipelineToFile”/“restorePipelineFromFile”技术。

    要使soap 标头出现在设计时,您必须对soap 标头字段进行隐式映射,就好像它们在那里一样。

    【讨论】:

    • 但是 savePipelineToFile 会保存文档中的所有 xmldata,包括肥皂标题吗?
    • 您应该在原始问题中提到您还需要肥皂标题(更新了我的答案)。 savePipelineToFile 将在运行时将管道中的所有内容保存在 webMethod 自己的管道 XML 结构中。如果这不是您想要的,那么您将不得不按照我的回答中所述使用“documentToXmlString”自己序列化管道文档。
    猜你喜欢
    • 1970-01-01
    • 2011-09-27
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多