2012-03-01 34 views
3

我有一个JAX-RS servlet,我想返回一个用于GET查询的JSON对象到URL /upgrade/somePath,但是String用于GET查询到/upgrade/somePath?count=true 。我的问题是,此方法无法基于查询参数返回两种不同的类型。我试图将不同的方法映射到特定的URL @Path("/upgrade/somePath?count=true"),但泽西并不乐意为此服务。根据查询参数从JAX-RS方法返回JSON对象或字符串

@Path("upgrade") 
public class UpgradeMock 
{ 
    @GET 
    @Path("somePath") 
    @Produces(MediaType.APPLICATION_JSON) 
    public UpgradePackageList getPackages(@QueryParam("count") Boolean count) 
+0

我想你应该根据那个神奇的查询参数来更改响应的Content-Type头。 – jabal 2012-03-01 10:35:19

+1

为什么不使用第二个资源的路径'/ upgrade/somePath/count'? – 2012-03-01 10:36:41

+1

好主意,这将是解决方案。我需要修改规范中的这些模式。 – tade 2012-03-01 12:11:33

回答

0

据我所知,使用泽西岛无法实现此目的。如果这种工作方式是必须的(即规范),您应该更改方法以返回String,并通过手动调用Jackson的JSON序列化程序将JSON序列化放到您的手中。

相关问题