任何人都知道是否可以使用webMethods developer 7.1中的flow服务创建一个新包。我想要做的是创建一个流服务,它以字符串(包名)作为输入,因此它将创建以字符串作为名称的新包。开发人员中是否存在我可以从我的服务中调用并自动创建包而不是文件->新->包的东西?
谢谢!
发布于 2013-11-21 22:49:36
据我所知,没有公开/文档化的方法来以编程的方式创建新的包。但是,如果您不介意使用私有/无文档的服务,并且理解这样做不会得到SoftwareAG的认可,那么您可以这样做:
WmRoot包(这是按设计进行的,因为它被认为是私有的),您可以向文件./IntegrationServer/config/server.cnfwatt.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/` - create this directory (OPTIONAL)
- `lib/` - create this directory (OPTIONAL)
- `ns/` - create this directory (OPTIONAL)
- `pub/` - create this directory (OPTIONAL)
- `index.html` - create this HTML file as a placeholder home page for the package (OPTIONAL)
- `resources/` - create this directory (OPTIONAL)
- `templates/` - create this directory (OPTIONAL)
- `web/` - create this directory (OPTIONAL)
- `manifest.v3` - create this XML file by copying the structure from another existing package (MANDATORY)
正如您所看到的,创建一个新包所需要的唯一东西是./IntegrationServer/packages/父目录下的一个新目录和一个manifest.v3文件。
来自manifest.v3 IntegrationServer7.1.3中新创建的包的示例webMethods文件如下所示:
<?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视为非法的新包。
https://stackoverflow.com/questions/20104411
复制相似问题