当前位置: 首页 > 知识库问答 >
问题:

使用Worklight适配器将JSON数据发送到Jersey Rest Webservice

浦泳
2023-03-14

我试图使用http适配器调用rest服务,但遇到不支持的媒体类型异常。

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

var invocationData={适配器:“MyHttpAdapter”,过程:“myAdapterProcedure”,参数:[myJSONObject]};

WL.Client.invokeProcedure(invocationData, {
    onSuccess : success,
    onFailure : failure
});

函数myAdapter程序(prarams){

var input = {
    method : 'put',
    returnedContentType : 'json',
    path : 'mobile/rest/notes/getMyWebData',
    parameters : prarams

};
return WL.Server.invokeHttp(input);

}

服务器端:@PUT@路径("addNotes")
@消耗("Application/json")@生成("Application/json")公共字符串addNotes(MyNotes pVo)抛出异常{System.out.println("1231231"pVo);返回pVo;}

详细异常:未能分析JSON字符串Apache Tomcat/6.0.35-错误报告

类型状态报告

消息不支持的媒体类型

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

在服务器上尝试使用“@消费”({MediaType.APPLICATION_JSON})方法仍然会得到同样的错误。有人能让我知道我在这里错过了什么吗...

在这里发现了相同的问题,但没有解决方案。ref:如何在rest web服务中发送JSON数据?

共有1个答案

濮阳浩穰
2023-03-14

您是否尝试过使用REST客户端检查REST服务(我正在使用firefox加载项“RESTClient”在worklight之外测试我的REST服务)?

如果在REST服务端没有问题,那么需要检查http适配器“input”对象中的头。

您必须在超文本传输协议请求中将内容类型参数设置为“应用程序/json”。为此,请添加“标头”属性,如下所示:

var input = {
   method : 'put',
   returnedContentType : 'json',
   path : 'mobile/rest/notes/getMyWebData',
   parameters : params,
   headers : 'Content-Type: application/json'

};

当做

 类似资料:
  • 我在BIDV工作,这是IBM在越南的一个大客户。 我正在开发一个JMS适配器来向TIBCO EMS发送消息。当我在Eclipse中调用过程时,会出现以下错误:

  • 问题内容: 我目前正在尝试从Android应用程序向php服务器发送数据(两者均由我控制)。 应用程序中的表单上收集了很多数据,这些数据已写入数据库。所有这一切。 在我的主代码中,首先我创建一个JSONObject(在此示例中,我已在此处将其裁剪): 接下来,我将对象传递给发送对象,并接收响应: HTTPPoster类: 这将获得响应,但是服务器返回403-禁止响应。 我试过稍微更改doPost函

  • 我正在尝试使用POST提交表单,但我有一些来自 标记的额外数据,这些数据已存储到JS对象中。当我从JavaScript中点击时,我想把它发送到服务器。 我尝试做的是用事件发送

  • 问题内容: 如何将JSON数据从浏览器中的Javascript发送到服务器,并由PHP在其中进行解析? 问题答案: 我在这里获得了很多信息,所以我想发布我发现的解决方案。 问题: 从浏览器上的Javascript获取JSON数据到服务器,然后让PHP成功解析它。 环境: Windows上的浏览器(Firefox)中的Javascript。LAMP服务器作为远程服务器:Ubuntu上的PHP 5.3