我試圖在Jetty上使用Jersey JAXRS設置一些REST服務。儘管如此,我無法將JSON數據傳遞給我的REST服務類。我的ajax請求不斷獲得「不支持的媒體類型」錯誤和狀態。無論我在我的方法中添加了哪些@Produces
和@Consumes
註釋,儘管他們都應該是MediaType.APPLICATION_JSON
,我也會得到這個結果。使用Jetty設置Jax-rs 2.2
我在澤西島上找不到像樣的文件,大量問題,博客和其他資源似乎都過時了。看起來澤西島最近經歷了很多變化,我對我應該在哪裏尋找的東西感到不知所措。我設置的基礎上,球衣的webapp的原型如下:
的web.xml:
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.my.package.rest</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
代碼片段:
@Path("/users")
public class UserService {
// Plain text works!
@GET
@Consumes(MediaType.TEXT_PLAIN)
public String list(){
return "Got it!";
}
// JSON doesn't work! >:(
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public User create(User user) {
Mocks.USERS.add(user);
return user;
}
我父POM管理這些依賴關係AHD這兩個中的第二個我的jax-rs項目pom中的一個依賴項。
<dependency>
<groupId>org.glassfish.jersey</groupId>
<artifactId>jersey-bom</artifactId>
<version>2.2</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<version>2.2</version>
</dependency>
我需要的東西,以增加對JSON支持?
也許增加一個JAX-RS傑克遜依存度將解決這個問題:http://mvnrepository.com/artifact/org.codehaus.jackson/jackson -jaxrs/1.9.13 –