Resttemplate Oauth2 Spring 用户信息无法将 xml 转换为 java.util.map
Resttemplate Oauth2 Spring Userinfo cannot convert xml to java.util.map
我已经设置了一个 Oath2 resttemplate client.When 它从远程服务身份验证返回,它尝试将用户信息从 XML 转换为 util.Map 并死于
o.s.b.a.s.o.r.UserInfoTokenServices - Could not fetch user details: class org.springframework.web.client.UnknownContentTypeException, Could not extract response: no suitable HttpMessageConverter found for response type [interface java.util.Map] and content type [application/xml;charset=UTF-8]
它收到的 XML 就像:
"<root><userinfo userid="Userxxx " lastname="xxx" firstname="xxx" /></root>"
我认为有两种选择:
- 以某种方式关闭自动检查 Spring 对 UserInfoTokenServices
2.add 使用 setMessageConverters
重新模板化转换器
不知道第一种可不可以。
就第二步而言,我已经制作了一个 XStream MapEntryConverter,但 Resttemplate 想要一个 HttpMessageConverter。
为什么默认情况下 UserInfoTokenServices 需要哈希图?有其他方法吗?
通常您不必创建自己的转换器,至少 JSON/XML - Spring 将根据类路径上可用的库配置它们。
对于上述格式,您通常需要 Jackson 库。在您的情况下,它是 com.fasterxml.jackson.dataformat:jackson-dataformat-xml
依赖项。
我已经设置了一个 Oath2 resttemplate client.When 它从远程服务身份验证返回,它尝试将用户信息从 XML 转换为 util.Map 并死于
o.s.b.a.s.o.r.UserInfoTokenServices - Could not fetch user details: class org.springframework.web.client.UnknownContentTypeException, Could not extract response: no suitable HttpMessageConverter found for response type [interface java.util.Map] and content type [application/xml;charset=UTF-8]
它收到的 XML 就像:
"<root><userinfo userid="Userxxx " lastname="xxx" firstname="xxx" /></root>"
我认为有两种选择:
- 以某种方式关闭自动检查 Spring 对 UserInfoTokenServices
2.add 使用 setMessageConverters
重新模板化转换器不知道第一种可不可以。 就第二步而言,我已经制作了一个 XStream MapEntryConverter,但 Resttemplate 想要一个 HttpMessageConverter。
为什么默认情况下 UserInfoTokenServices 需要哈希图?有其他方法吗?
通常您不必创建自己的转换器,至少 JSON/XML - Spring 将根据类路径上可用的库配置它们。
对于上述格式,您通常需要 Jackson 库。在您的情况下,它是 com.fasterxml.jackson.dataformat:jackson-dataformat-xml
依赖项。