所以我几天来一直在努力解决这个问题。我在互联网上到处搜寻(我认为?)但我找不到解决方案。
所以我在我的glassfish服务器上发了这篇文章:
curl -H "Content-Type: application/json" -X POST -d '{"Description":"hallotesCURL","Latitude":30,"Longitude":126,"Name":"testCURL"}' http://localhost:8080/Mesta/location/save
但是当我使用以下cURL命令发布时:
oID
我将始终收到错误415不支持的媒体类型。 我不使用maven所以我没有pom.xml。 我认为也没有web.xml文件,但我不确定这是在最新版本的java中删除的。
这是我第一次在这里发帖,所以任何帮助都会受到赞赏。
答案 0 :(得分:3)
org.json库未与Jersey集成。因此,JSON不会自动解析为POJO,反之亦然。
您最好使用以下模块之一来提供JSON支持。所有这些都与Jersey 2.x整合:
我会推荐杰克逊。使用Jackson作为JSON提供程序的步骤在answer中有详细描述,总结如下:
将jersey-media-json-jackson
模块添加到test
:
pom.xml
如果你没有使用Maven,请确保在类路径上拥有所有jersey-media-json-jackson
依赖项。
然后在JacksonFeature
/ Application
子类中注册ResourceConfig
:
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.25.1</version>
</dependency>
@ApplicationPath("/api")
public class MyApplication extends Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> classes = new HashSet<Class<?>>();
classes.add(JacksonFeature.class);
return classes;
}
}
有关详细信息,请查看泽西岛documentation。