2012-03-01 5 views
3

JAX-RSサーブレットがあり、URL /upgrade/somePathにGETクエリのJSONオブジェクトを返しますが、/upgrade/somePath?count=trueにGETクエリの場合はStringを返します。 。私の問題は、このメソッドはクエリパラメータに基づいて2つの異なる型を返すことができないということです。私は別の方法を特定のURL @Path("/upgrade/somePath?count=true")にマップしようとしましたが、Jerseyはそれを提供することに満足していませんでした。クエリパラメータに応じてJAX-RSメソッドからJSONオブジェクトまたはStringを返す

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

魔法のクエリパラメータに従ってレスポンスのContent-Typeヘッダーを変更する必要があると思います。 – jabal

+1

2番目のリソースに '/ upgrade/somePath/count'というパスを使用しないのはなぜですか? –

+1

良いアイデアとこれが解決策になります。私は仕様からこれらのパターンを修正する必要があります。 – tade

答えて

0

私が知る限り、ジャージーを使用してこれを達成することはできません。この作業方法が必須(つまり仕様)の場合は、Stringを返すようにメソッドを変更し、JSONシリアライザを手動で呼び出すことでJSONシリアライズを手に入れる必要があります。

関連する問題