【问题标题】:Restful web service 415宁静的网络服务 415
【发布时间】:2019-05-25 08:41:02
【问题描述】:
@RestController
@RequestMapping(value="/uri",produces = "application/json", 
consumes="application/json")
public class VisitorService {
VisitorDAO vis=new VisitorDAO();

@RequestMapping(value = "/ex" ,method = RequestMethod.POST)
public String showDetails(@RequestBody VisitorDTO visitor){
    vis.addVisitorEntry(visitor);
    return "success"+visitor;
}} 

以上是我的休息服务。 每当我使用带有以下 JSON 的 URL 发布帖子时,

  {
    "phoneNumber" : 188892,
    "name" : "kikiki" ,
    "email" : "loa@gmail.com",
    "purpose" : "Business",
    "hostName" : "sjs S Murthy"
  }

我收到 HTTP 状态 415 – 不支持的媒体类型。 为什么会这样?

【问题讨论】:

  • 可能是您在 HTTP 请求中缺少Accept: application/json
  • 您如何调用其余服务,我的意思是您使用邮递员?在那里检查您的内容类型
  • 不,通过邮递员发送请求,已使用 application/json 标头发送请求。
  • 是的,添加了内容类型-appplication/json

标签: java json spring rest http-status-code-415


【解决方案1】:

检查您是否在@Configuration 类中设置了@EnableWebMvc 注释。

另外,尝试将以下依赖项添加到您的 pom.xml 中(如果不使用 Maven,只需将它们添加到您的类路径中,但您喜欢)。

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>${jackson-version}</version> // 2.4.3
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>${jackson-version}</version> // 2.4.3
</dependency>

Spring 使用 Jackson 和 Jackson-databind 将请求的 JSON 正文解析为 Java 对象。

【讨论】:

  • 使用过基于xml的配置
  • 尝试将其添加到您的 xml 配置中:&lt;mvc:annotation-driven /&gt;,您仍然需要在类路径中使用 Jackson 库。
猜你喜欢
  • 1970-01-01
  • 2012-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-07
  • 1970-01-01
  • 1970-01-01
  • 2011-10-02
相关资源
最近更新 更多