【问题标题】:Package creation in WebMethods在 WebMethods 中创建包
【发布时间】:2014-07-08 21:54:31
【问题描述】:

任何人都知道是否可以在 webMethods developer 7.1 中使用流服务创建新包。我想要做的是创建一个流服务,该服务将字符串(包名称)作为输入,因此它将创建以字符串为名称的新包。开发人员中是否存在我可以从我的服务调用的任何内容,并且它会自动创建包而不是 File -> New -> Package?

谢谢!

【问题讨论】:

    标签: webmethods


    【解决方案1】:

    据我所知,没有公开/记录的方式以编程方式创建新包。但是,如果您不介意使用私有/无证服务,并且了解这样做不会得到 SoftwareAG 的认可,那么您可以执行以下操作:

    • 如果您在 Developer/Designer 中看不到 WmRoot 包(这是设计使然,因为它被认为是私有的),您可以将以下配置密钥添加到文件 ./IntegrationServer/config/server.cnf

      watt.server.ns.hideWmRoot=false

    • 使用服务WmRoot/wm.server.packages:packageCreate 创建一个新的未激活包。不幸的是,尚未声明此(以及大多数其他WmRoot 服务)的输入和输出,但您只需将一个名为package 的字符串变量设置为所需的包名称到输入管道即可调用它。

    • 使用服务WmPublic/pub.packages:activatePackage激活新包。

    对于奖励积分,您也可以使用WmRoot/wm.server.services:serviceAdd 服务以编程方式在您的包中创建新服务(这是 WmRoot 中为数不多的声明其输入和输出的服务之一)。


    或者,如果您不希望使用私有/未记录的服务,您可以创建自己的服务以相对轻松地创建新包。由于一个全新的包只是空目录和manifest.v3 文件的集合,您可以编写自己的服务来创建这些目录和文件,然后调用WmPublic/pub.packages:activatePackage 来激活它:

    • IntegrationServer/
      • packages/
        • <package_name>/ - 使用所需的包名称创建此目录(强制)
          • code/ - 创建此目录(可选)
            • classes/ - 创建此目录(可选)
            • jars/ - 创建此目录(可选)
            • source/ - 创建此目录(可选)
          • doc/ - 创建此目录(可选)
          • lib/ - 创建此目录(可选)
          • ns/ - 创建此目录(可选)
          • pub/ - 创建此目录(可选)
            • index.html - 将此 HTML 文件创建为包的占位符主页(可选)
          • resources/ - 创建此目录(可选)
          • templates/ - 创建此目录(可选)
          • web/ - 创建此目录(可选)
          • manifest.v3 - 通过从另一个现有包中复制结构来创建此 XML 文件(强制)

    如您所见,创建新包真正需要的只是./IntegrationServer/packages/ 父目录下的新目录和manifest.v3 文件。

    来自 webMethods Integration Server 7.1.3 中新创建的包的 manifest.v3 文件示例如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <Values version="2.0">
      <value name="enabled">yes</value>
      <value name="system_package">no</value>
      <value name="version">1.0</value>
      <null name="startup_services"/>
      <null name="shutdown_services"/>
      <null name="replication_services"/>
      <null name="requires"/>
      <null name="listACL"/>
    </Values>
    

    最后一点:如果您采用这种替代方法来构建自己的包创建服务,请注意不要创建名称被 webMethods Integration Server 视为非法的新包。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-19
      • 1970-01-01
      • 2012-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多