【问题标题】:Why am I getting Media type unsupported 415 error?为什么我收到 Media type unsupported 415 错误?
【发布时间】:2016-11-01 20:57:33
【问题描述】:

我的 Web 服务 Java 类是这样的

@Path("/signUp")
public class SignUpService{
    (POST)
    @Path("/sendCode")
    @Consumes(Media_APPLICATION_JSON)
    @Produces(Media_APPLICATION_JSON)
    public String signUp(Incoming streamingData){
       //some logic goes here
       return someString;
    }
   return someString;
}

//请原谅上面的代码,我是根据自己的记忆打出来的。真正的问题如下

我的服务器代码在我的 Mac 上的 Apache tomcat 上运行,当我使用 POSTMAN 发送带有 JSON 正文的 POST 请求时,它可以工作。

我在 AWS Ubuntu 中将相同的代码部署到了 tomcat,但出现 Media Type unsupported 415 错误。但是 GET 请求在我的本地机器和 AWS 部署中都可以正常工作。

【问题讨论】:

标签: java json amazon-web-services tomcat media-type


【解决方案1】:

我想出了解决办法。我没有添加

 @Consumes(Media_APPLICATION_JSON)
 @Produces(Media_APPLICATION_JSON)

在班级层面。

进行以下更改修复了问题

@Path("/signUp")
@Consumes(Media_APPLICATION_JSON)
@Produces(Media_APPLICATION_JSON)
public class SignUpService{

【讨论】:

    【解决方案2】:

    如果使用 maven,请尝试在 pom.xml 中添加以下依赖项。

    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-json-jackson</artifactId>
        <version>2.23.2</version>
    </dependency>
    

    如果不使用 maven,请从此处下载 jar 并将其添加到类路径中: https://mvnrepository.com/artifact/org.glassfish.jersey.media/jersey-media-json-jackson/2.23.2

    还将 (POST) 更改为 @POST。

    【讨论】:

      【解决方案3】:

      您无需在类级别添加以下注释即可解决此问题。

      @Consumes(Media_APPLICATION_JSON) @Produces(Media_APPLICATION_JSON)

      您需要确保您在请求的标头中发送的内容类型应与球衣的@consume注释的内容类型匹配。

      【讨论】:

        猜你喜欢
        • 2022-10-13
        • 2015-08-06
        • 1970-01-01
        • 2012-04-19
        • 2011-05-13
        • 1970-01-01
        • 1970-01-01
        • 2021-07-16
        相关资源
        最近更新 更多