问题标签 [resttemplate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
6807 浏览

spring - 无法让 RestTemplate 正常工作。以 406 结尾不可接受

我正在尝试使用 Spring 的 RestTemplate 将支付提供商实施到我正在从事的项目中。从支付提供商返回的 XML 如下:

我为此 XML 创建的类是:

如果我只是将 xml 请求为字符串并自己解组它们,它可以工作:

但是,如果我这样做:

或者

它以 406 Not Acceptable 告终。

我的restTemplate beanconfiguration(在控制器中是@Autowired)如下所示:

有人知道是什么原因造成的以及如何解决吗?上面代码中的 URL 是可公开访问的,因此您可以自己尝试此代码。

0 投票
1 回答
1841 浏览

spring-mvc - 如何使用 Builder Pattern 和 @JsonDeserialize 使用 Spring RestTemplate 反序列化响应 json

如何配置 RESTTemplate 以使用 Jackson 的 @JsonDeserialize 反序列化响应 Json?

我的域类基于 Builder Pattern 和 jackson 的 @JsonDeserialize marshall 和 unmarshall 在单元测试中很好。但是,当与 Spring 的 RESTTemplate (Spring 3.1) 结合使用时,它会失败。

领域类:

单元测试中的 Spring RESTTemplate 代码:

RestTemplate#doExecute() 中的错误 - 第 436 行:

0 投票
1 回答
457 浏览

java - 帖子数据中的Spring Resttemplate意外字段“会话”

这是 MappingJacksonConverter 生成的数据,但我不知道如何禁用包含整个递归数据的“会话”字段。

这是发布上述数据的代码。我需要添加任何部分来禁用“会话”字段吗?

0 投票
1 回答
151 浏览

android - 不清楚为什么会发生错误,是由于 AsyncTask 的使用不正确?

不清楚为什么会发生错误,是由于 AsyncTask 的使用不正确?

我现在正在开发一个 android 日历应用程序。我想要同步功能,允许用户将他们的数据同步到服务器,反之亦然。
当用户打开应用程序时,它会从服务器获取数据并将新数据更新到 android 设备上的 sqlite 数据库。
并且每当用户创建新数据时,它都会将此数据发送到服务器以更新到服务器上的数据库。
我就这样实现了我的理想。
1. MainActivity 类做同步动作

2.DataSyncTask收集asyncTask

3.ServerUtilities 类

当我启动 MainActivity 时,它连接到服务器,获取数据,更新到 sqlite 数据库并将新数据从设备发送到服务器以更新成功,一切正常。但是当我创建一个新数据时,当执行syncTask.syncOnInsert(),它得到异常:

谁能解释我为什么会发生这种情况并教我如何解决这个错误。
提前致谢!

0 投票
0 回答
2706 浏览

spring - RestTemplate().getForObject 给出“不是有效的 HTTP URL”

我有一些非常基本的代码来调用 Web 服务。使用 RestTemplate().getForObject 会给我“不是有效的 HTTP URL”错误。

这是客户端代码:

控制器

servlet.xml

访问链接 localhost:9080/someApp/testWs/partners/1> 返回结果,但使用 RestTemplate().getForObject() 不起作用。

这是 Prtnr 类:

我在服务器端看到的错误是:[12/3/12 10:25:57:764 EST] 00000039 ServletWrappe E SRVE0068E:在 servlet 的服务方法之一中抛出未捕获的异常:

Web 服务的卷曲是: org.codehaus.jackson.map.deser 的 org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:579) 的线程“main”java.lang.StackOverflowError 中的异常。 SettableBeanProperty.deserialize(SettableBeanProperty.java:299) at org.codehaus.jackson.map.deser.SettableBeanProperty$MethodProperty.deserializeAndSet(SettableBeanProperty.java:414) at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer. java:697) 在 org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:580)

我错过了什么???

谢谢

0 投票
1 回答
5014 浏览

java - 使用 Java Spring RestTemplate 上传大型二进制文件

我有一个能够接收二进制数据 [文件] 的 servlet。

我想使用 Spring 的 RestTemplate() 将一个大的二进制文件上传到 servlet。但是,不可能将二进制文件完全加载到内存中。

到目前为止,我的尝试导致 OutOfMemory 错误,表明这些方法一直在尝试将整个文件加载到内存中。

如何将此二进制数据流式传输到 servlet?在 Spring 或 Java 中更可取。

0 投票
2 回答
540 浏览

android - 休息服务连接(或其他)是否在 20 秒后关闭?

在android上使用spring restful时出现问题。
我的代码就是这样。
1. 活动

2. test_rest_template.xml 文件:

3.在服务器端

问题是,当我第一次单击按钮时,它连接到服务器并成功响应了一个字符串,但之后,如果我等待 21 秒或更长时间,然后单击按钮,我在 logcat 中发生了异常.

我用谷歌搜索这种模式大约 2 天,但没有找到任何有用的建议。你们中的任何人都可以向我解释这个问题。
提前致谢。

0 投票
9 回答
298379 浏览

spring - Spring RestTemplate 超时

我想为我的 Web 应用程序使用的休息服务设置连接超时。我正在使用 Spring 的 RestTemplate 与我的服务交谈。我做了一些研究,发现并使用了下面的 xml(在我的应用程序 xml 中),我相信它是为了设置超时。我正在使用 Spring 3.0。

我在这里也看到了同样的问题Timeout configuration for spring webservices with RestTemplate但解决方案似乎不太干净,我更喜欢通过 Spring config 设置超时值

似乎无论我将 readTimeout 设置为什么,我都会得到以下信息:

网线断开: 等待约20秒,报如下异常:

org.springframework.web.client.ResourceAccessException: I/O error: No route to host: connect; 嵌套异常是 java.net.NoRouteToHostException: No route to host: connect

网址不正确,因此休息服务返回 404: 等待大约 10 秒并报告以下异常:

org.springframework.web.client.HttpClientErrorException:404 未找到

我的要求需要更短的超时,所以我需要能够更改这些。关于我做错了什么的任何想法?

非常感谢。

0 投票
2 回答
2012 浏览

spring - 使用 RestTemplate.postForLocation 的文件上传进度条

我有一个将文件上传到 REST 服务的 Java 桌面客户端应用程序。

对 REST 服务的所有调用都使用 Spring RestTemplate 类处理。

我希望实现一个进度条并取消功能,因为正在上传的文件可能非常大。

我一直在寻找一种在网络上实现此功能的方法,但没有运气。

我尝试实现自己的 ResourceHttpMessageConverter 并替换 writeInternal() 方法,但是在实际发布请求之前,似乎在某种缓冲操作期间调用了此方法(因此在发送之前一次性读取流)。

我什至尝试过覆盖 CommonsClientHttpRequestFactory.createRequest() 方法并使用特殊的 writeRequest() 方法实现我自己的 RequestEntity 类,但是会出现同样的问题(在实际发送帖子之前已读取所有流)。

我找错地方了吗?有没有人做过类似的事情。

我在网上读到的很多关于实现进度条的内容都谈到了关闭上传,然后使用单独的 AJAX 请求轮询 Web 服务器的进度,这似乎是一种奇怪的方式。

非常感谢任何帮助或提示。

0 投票
1 回答
12288 浏览

java - 在一个字段中反序列化具有多种类型的 JSON

我想反序列化 JSON(使用 Jackson 1.9.11 和 RestTemplate 1.0.1),其中一个字段可能具有更多类型含义,例如:

或者

任何一种情况都可以与特定类型的一个设置器(字符串或自定义响应类)一起正常工作,但是当我放入我的实体 bean 覆盖设置器以能够处理这两种情况时,会引发异常:

我正在考虑三种解决方案,但我没有让它们中的任何一个起作用:

  • 仅使用 String setter 并在内部使用 ObjectMapper 来解组该字符串,如果它不等于“error”,但是当该 JS Array 出现时,它不是字符串,因此不使用 String setter :(。
  • 使用带有自己的 JsonDeserializer 扩展的多态类型处理(@JsonTypeInfo 注释) - 我仍在尝试理解并实现这一点。
  • 创建 HttpMessageConverter 列表并放入我可以使用的所有消息转换器。但我认为这一步是不必要的,因为只使用了 MappingJacksonHttpMessageConverter,对吗?

编辑:它现在是如何工作的

实体 bean 中的设置器:

ResponseDeserializer 中的反序列化方法: