1.怎样才可以调用WmRoot包中的services
在webmethods中WmRoot 这个包算是核心了,里面有很多有用的services。不过由于权限(ACL)问题,在developer中无法直接调用WmRoot 中的service。不过可以在IS Admin UI中浏览到这些services。见下图,
怎样才可以在developer中查看和调用这些services呢?你只需修改一下配置
在Admin UI界面点击Setting -> Extended. 然后点击 Show and Hide Keys。找到watt.server.ns.hideWmRoot= true 将 true改为false即可。这时你可以用admin权限的账号登陆到developer就可以看到WmRoot这个包了,注意,用developer的账号登陆看不到,因为这个包的ACL的list权限是Administrator。
还有一种办法无需修改配置可以直接调用,但是前提是你得知道调用的services的名字。
随便新建一个service,随便调用一个services然后将调用的这个services的Property下的services直接改成你想调用的WmRoot下的services即可。
2.为Admin UI添加menu菜单。
在WmRoot包中用两个service可以给Admin界面添加Menu菜单,一个是wm.server.ui.addMenu ,这个添加的menu会显示在Adapters菜单下。
另外一个是wm.server.ui.addSolution,这个menu会添加在Solutions菜单栏下。
1) 添加到Adapter菜单栏下。
运行wm.server.ui.addMenu , 输入如图所示参数,
其中参数 service 和 submenu的意义不知道,有知道的可以留言。
刷新Admin UI 界面,可以看到已经添加了一个menu.但是我定义的testa.dsp 和tesb.dsp并不存在,所有,打开后看到的是404错误。见图:
但是这个添加之后,你一旦重启IS Server,这个menu就不存在了,所以你得建个server来调用wm.server.ui.addMenu。然后将这个service设置为所在包的Startup Services.
这样当这个包一加载,这个menu就添加了。如下图所示,initServics就调用了wm.server.ui.addMenu这个service.
2)添加到Solutions菜单栏下。
打开wm.server.ui.addSolution可以看到一个输入参数callBack.
这时你新建一个service.添加一个Map Step,然后在pipeline out 中输入以下 Key Vale对。
name My Solution
text My Solution
url ../mypackage/mySolution.dsp
target mypackage/mySolution.dsp
当然,这个url指向的dsp文件不存在,所以打开也是404错误。
运行wm.server.ui.addSolution,把你刚才新建的service的全名copy到callBack这个参数,然后运行。刷新Admin UI界面,你会发现新增加了一个菜单栏在Solutions下面。
这个方法添加的菜单栏在IS重启后也会丢失,所以你可以建一个调用wm.server.ui.addSolution 的service作为某个包的Startup Service即可。
当然,WmRoot下还有很多有用的Servics.比如,wm.server.query.getCurrentUser可以获取当前的用户。等等,其他的各位可以自己可以去看看。
3,移除菜单栏。
调用wm.server.ui.removeMenu 和 wm.server.ui.removeSolution 既可以移除菜单栏。