获取“找不到 Media type=application/json 的 MessageBodyWriter”,尝试通过 JAX-RS Web 服务发送 JSON 对象
2022-09-01 18:03:32
我正在尝试通过 JAX-RS Web 服务发送 JSON 对象。我的文件网站.xml是:
<servlet>
<description>JAX-RS Tools Generated - Do not modify</description>
<servlet-name>JAX-RS Servlet</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>it.notifire</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>JAX-RS Servlet</servlet-name>
<url-pattern>/jaxrs/*</url-pattern>
</servlet-mapping>
对要发送的对象进行建模的类是:
public class GPSCoordinate {
private float latitudine;
private float longitudine;
public float getLatitudine() {
return latitudine;
}
public void setLatitudine(float latitudine) {
this.latitudine = latitudine;
}
public float getLongitudine() {
return longitudine;
}
public void setLongitudine(float longitudine) {
this.longitudine = longitudine;
}
}
根类资源为:
@Path("position")
public class Position {
@Context
private UriInfo context;
@GET
@Produces(MediaType.APPLICATION_JSON)
public GPSCoordinate getHTML() {
GPSCoordinate coord = new GPSCoordinate();
coord.setLatitudine(90.45f);
coord.setLongitudine(34.56f);
return coord;
}
}
现在,当我尝试访问该服务时,我将浏览器指向以下链接
http://localhost:8080/Notifire/jaxrs/position
我得到以下错误:
message org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter 未找到 media type=application/json
在我的 WEB-INF/lib 文件夹中,我有 jersey JAX-RS 实现的最后一个版本(jaxrs-ri-2.5.jar)和 jersey-json.jar 存档。
任何帮助将不胜感激。