任何人都知道在webMethods开发者7.1中是否可以使用流服务创建新包。我想要做的是创建一个流服务,该服务将字符串(包名称)作为输入,因此它将创建具有字符串作为名称的新包。在我可以从我的服务中调用的开发人员中是否存在任何内容,它会自动创建包而不是File - >新 - >封装
谢谢!
答案 0 :(得分:7)
据我所知,没有以编程方式创建新包的公开/记录方式。但是,如果您不介意使用私有/未记录的服务,并且了解这样做不会被SoftwareAG认可,那么您可以执行以下操作:
如果在Developer / Designer中看不到WmRoot
包(这是设计,因为它被认为是私有的),您可以将以下配置键添加到文件./IntegrationServer/config/server.cnf
:
watt.server.ns.hideWmRoot=false
使用服务WmRoot/wm.server.packages:packageCreate
创建新的未激活程序包。遗憾的是,此(以及大多数其他WmRoot
服务)的输入和输出尚未声明,但您只需要将一个名为package
的String变量设置为所需的包名称,以便调用输入管道它
使用服务WmPublic/pub.packages:activatePackage
激活新包。</ p>
对于奖励积分,您可以使用服务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
文件。
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视为非法的新包。