我尝试使用http适配器调用rest服务,但是得到了不支持的媒体类型异常。
我的适配器和服务器端代码如下
var invocationData = { 适配器:'MyHttpAdapter', 程序:'myAdapterProcedure', 参数:[myJSONObject] };
WL.Client.invokeProcedure(invocationData, {
onSuccess : success,
onFailure : failure
});
function myAdapterProcedure(prarams){
var input = {
method : 'put',
returnedContentType : 'json',
path : 'mobile/rest/notes/getMyWebData',
parameters : prarams
};
return WL.Server.invokeHttp(input);
}
服务器端:
@放
@Path( “addNotes”)
@Consumes( “应用程序/ JSON”)
@Produces( “应用程序/ JSON”)
public String addNotes(MyNotes pVo)抛出异常
{
System.out.println(“1231231”+ pVo);
返回pVo;
}
详细例外: 无法解析JSON字符串 Apache Tomcat / 6.0.35 - 错误报告
类型状态报告
消息不支持的媒体类型
描述服务器拒绝此请求,因为请求实体所采用的方法所请求的资源不支持该格式(不支持的媒体类型) )。
尝试使用Put,Post方法调用并获得相同的异常。尝试使用'@Consumes({MediaType.APPLICATION_JSON})在服务器方法上仍然得到相同的错误。任何人都可以让我知道我在这里失踪了什么...
在这里找到相同的问题,没有解决方案。 参考: How to send the JSON data in rest web services?
答案 0 :(得分:0)
您是否尝试使用REST客户端检查您的REST服务(我使用firefox附加组件“RESTClient”来测试我在工作光之外的REST服务)?
如果在REST服务端没有问题,那么您需要检查http适配器“input”对象中的标头。
您必须在http请求中将content-type params设置为“application / json”。为此,请添加“headers”属性,如下所示:
var input = {
method : 'put',
returnedContentType : 'json',
path : 'mobile/rest/notes/getMyWebData',
parameters : params,
headers : 'Content-Type: application/json'
};
问候。