Jerseyを使用してJSONPを実装する必要がある場合は、REST URLに/jsonpを含める必要がありますか?JerseyのJSONPレスポンスを返すREST URL形式には常に "/ jsonp"が含まれていますか?
は、ここに私が展開し、ブラウザでURLをロードすると
@GET
@Path("/dates/jsonp")
@Produces("application/javascript")
public JSONWithPadding getCompetitionsByDate(
@QueryParam("dateFrom") String dateFrom,
@QueryParam("dateTo") String dateTo,
@QueryParam("callback") String callback) {
DateFormat df = new SimpleDateFormat("MMddyyyy");
Date dateF = null;
Date dateT = null;
try {
dateF = df.parse(dateFrom);
dateT = df.parse(dateTo);
} catch (ParseException parseExp) {
return null;
}
List<Competition> competitions = context.getCompetitions(
dateF, dateT);
GenericEntity<List<Competition>> compGenericEntity = new GenericEntity<List<Competition>>(competitions) {};
JSONWithPadding padding = new JSONWithPadding(compGenericEntity,
callback);
return padding;
}
は、これが正しいJSON、コールバックメソッドで埋め返すメソッドのための私のジャージーコードですが、私は@Path("/dates?enable=jsonp")
へのパスを変更すると、それは動作しませんし、コンテストのXML表現を返します。
私はJSON 1.10を使用しており、このアプリケーションはGlassfish 3.1.1にデプロイされています。
私はあなたのコメントを「他の問題はパスの値にクエリのパラメータを入れているということです」と理解していませんでした。密接に見ると、クエリパラメータを個別に指定するわけではありません。違いは私の@Pathには値として( "/ dates/jsonp")があります。私が間違っているところを指摘できますか? –
あなたの段落をコピーする: ""ブラウザにURLを展開してロードすると、コールバックメソッドで埋め込まれた正しいJSONが返されますが、パスを@Path( "/ dates?enable = jsonp")に変更すると、コンテストのXML表現を返します」「 –
ああ、私はそれが変更されないので、パスに入れることができると思いました。ありがとう、私はあなたに知らせるでしょう –