我的worklight应用程序有一个页面,可以将一些值发布到远程服务器。这是使用调用url发布的适配器完成的。客户端javascript是:
var invocationData = {
adapter : 'StoryAdaptor',
procedure : 'postStoryDetails',
parameters : [ storyParameters ]
};
WL.Client.invokeProcedure(invocationData, {
onSuccess : function(data) {
alert("return message: "+JSON.stringify(data))
},
onFailure : function(data) {
alert("Couldn't save Story");
}
});
适配器方法是
function postStoryDetails(storyParameters){
var input = {
method : 'post',
returnedContentType : 'json',
path : "/postStory.json",
parameters : storyParameters
};
var authResult = WL.Server.invokeHttp(input);
}
远程应用程序是一个java Spring应用程序,它接受参数并成功保存,只返回一个字符串" success"。
@RequestMapping(value = { "/postStory" }, method = RequestMethod.POST)
public String postStory(HttpServletRequest request,HttpServletResponse response){
Story story = new Story();
story.setTitle(request.getParameter("title"));
.
.
.
boolean status = storyService.saveStory(story);
if(status ){
return "success";
}
return "failed";
}
我没有得到成功"工作中的信息。相反,每次打印警报
return message: {"status":200,"invocationContext":null,"invocationResult":{"isSuccessful":true}}
为什么我没有收到回复的消息?
答案 0 :(得分:1)
尝试按以下方式返回:
return {
result: "success";
}
对于Worklight 6.2,请参阅Using Java in Adapters,幻灯片#11
对于MobileFirst Platform 3.2,请参阅Using Java in Adapters,部分"从适配器调用自定义Java类"