gpt4 book ai didi

java - Jersey 2.22 和 json 不支持的媒体类型

转载 作者:行者123 更新时间:2023-11-30 07:49:26 25 4
gpt4 key购买 nike

我正在创建一个 REST Web 服务,并且想要使用一个 json/xml 对象。我正在使用 Jersey ,当我尝试发布请求时,我收到 415 错误,不支持媒体类型。这是pom依赖

<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.22</version>
</dependency>

<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>2.22</version>
</dependency>

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

web.xml

servlet>
<servlet-name>jersey-serlvet</servlet-name>
<servlet-class>
org.glassfish.jersey.servlet.ServletContainer
</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>
provider packages
</param-value>
</init-param>
<init-param>
<param-name>jersey.config.server.provider.classnames</param-name>
<param-value>
org.glassfish.jersey.media.multipart.MultiPartFeature;
org.glassfish.jersey.server.filter.RolesAllowedDynamicFeature,
org.glassfish.jersey.jackson.JacksonFeature
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>

和网络服务

@POST
@Path("FooPath")
@Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public void insertFoo(FooClass fc){
System.out.println(fc.getFoo());
}

谁能帮我?

最佳答案

您尝试使用表单提交发送 application/json 请求,并将表单 enctype 设置为 application/json

不幸的是enctype仅支持these values :

  • application/x-www-form-urlencoded(默认)
  • 多部分/表单数据
  • 文本/纯文本(HTML5 中)

浏览器会默默地忽略 enctype,并且您的服务器会拒绝该请求,因为它很可能是 application/x-www-form-urlencoded

为了以 json 形式发送请求,您需要从 Javascript 创建适当的 Ajax 请求。这是一个example如何做到这一点。

关于java - Jersey 2.22 和 json 不支持的媒体类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33479502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com