我的 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应用程序,它接受参数并在成功保存时,只返回一个字符串"成功"。
@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}}
为什么我收不到返回的消息?
尝试按如下方式返回:
return {
result: "success";
}
对于 Worklight 6.2,请参阅在适配器中使用 Java,幻灯片 #11
对于 MobileFirst 平台 3.2,请参阅在适配器中使用 Java,"从适配器调用自定义 Java 类"一节