WebMethods中的包创建

use*_*503 3 webmethods

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

谢谢!

Lac*_*ing 7

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

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

    watt.server.ns.hideWmRoot=false

  • 使用该服务WmRoot/wm.server.packages:packageCreate创建新的未激活包.遗憾的是,此声明(以及大多数其他WmRoot服务)的输入和输出尚未声明,但您只需要将名为packageset 的String变量添加到输入管道所需的包名称即可调用它.

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

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


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

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

如您所见,创建新包所需的唯一内容是./IntegrationServer/packages/父目录下的新目录和manifest.v3文件.

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

<?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>
Run Code Online (Sandbox Code Playgroud)

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