有没有办法知道适配器是否在MobileFirst Development Server中运行,或者它是否已部署到完整服务器?
- 更新 -
具体来说,我想从适配器的代码本身找出,如果适配器是在开发人员的机器上执行的,或者是在WAS / Tomcat /非开发Liberty Profile中执行 。
我想知道这一点,以便能够保留一些用于测试的无保护的适配器程序;这个测试程序看起来与此类似
function testThisAdapter() {
if (isDevelopmentServer()) {
return doMyTestStuff();
} else {
return {isSuccess: false, errors: ['nice try']};
}
}
- 更新 -
我正在使用Idan的回答
function isDevelopmentServer() {
var clientRequest = WL.Server.getClientRequest();
var url = clientRequest.getRequestURI();
var pattern = /\/dev\/invoke/;
return pattern.test(url);
}
答案 0 :(得分:2)
更新:使用6.3(或更早版本)Studio MoblieFirst Development Server时,所有适配器请求都通过开发servlet。请求网址中包含 / dev / :http://serverIp:10080/my-project-name/dev/invoke?adapter=my-adapter-name&procedure=my-procedure-name
。见这里:Endpoints of the MobileFirst Server production server
这是我所知道的唯一区分因素。我不确定您是否可以在适配器代码中使用它。也许在客户端,如果您以某种方式设法检索此URL或验证其存在,那么您可以为该应用程序设计适当的逻辑。
请参阅以下用户文档主题:Vitality queries for checking server health
使用IBM®Worklight®活力查询来运行您的健康状况检查 服务器,并确定服务器的活力状态。
您通常使用来自负载的IBM Worklight活力查询 平衡器或来自监控应用程序(例如Patrol)。
对于特定的服务器,您可以为整个服务器运行活力查询 适配器,特定应用程序或组合。下列 表格显示了一些活力查询的例子。
对于适配器,查询将为:http://<server>:<port>/<publicWorkLightContext>/ws/rest/vitality?app=MyApp&adapter=MyAdapter
用户文档主题包含更多信息和示例。