首页 文章

使用Worklight Adapter将JSON数据发送到Jersey Rest Webservice

提问于
浏览
0

我尝试使用http适配器调用rest服务,但是得到了不支持的媒体类型异常 .

我的适配器和服务器端代码如下

var invocationData = {adapter:'MyHttpAdapter',procedure:'myAdapterProcedure',parameters:[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);

}

服务器端:@PUT @Path("addNotes")
@Consumes("application/json")@Produces("application/json")public String addNotes(MyNotes pVo)throws Exception {System.out.println("1231231" pVo);返回pVo; }

详细异常:无法解析JSON字符串Apache Tomcat / 6.0.35 - 错误报告

HTTP状态415 - 不支持的媒体类型

type 状态报告

message 不支持的媒体类型

description 服务器拒绝了此请求,因为请求实体的格式不受请求方法所请求的资源支持(不支持的媒体类型) .

Apache Tomcat / 6.0.35

FWLSE0101E:引起:[project GMobile] java.io.IOException:第1行第1列的意外字符'<' com.worklight.common.log.filters.ErrorFilter

尝试使用Put,Post方法调用并获得相同的异常 . 尝试使用'@Consumes()在服务器方法上仍然得到相同的错误 . 任何人都可以让我知道我在这里失踪了什么...

没有解决方案,在这里找到了同样的问题 . 参考:How to send the JSON data in rest web services?

1 回答

  • 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'
    

    };

    问候 .

相关问题