1

以下の 2 つのメソッドを安静なリソース クラスで定義しています。ジャージーを使用しています。しかし、ユニットを実行しようとすると、エラーが表示され、メディアの種類が同じです。何か不足していますか?

SEVERE: 次のエラーと警告がリソース クラスまたはプロバイダー クラスで検出されました: SEVERE: メディア タイプの競合が発生しています。リソース メソッド public javax.ws.rs.core.Response com.thomsonreuters.codes.sourcedocweb.resource.DocumentsResource.findDocumentMetadataByCorId(java.lang.String) および public javax.ws.rs.core.Response com.thomsonreuters.codes. sourcedocweb.resource.DocumentsResource.findDocumentMetadata(java.lang.String) は同じメディア タイプを生成できます情報: 低レベルの InMemory テスト コンテナーを停止しています

@GET
@Path("/{docId}/metadata")
@Produces(MediaType.APPLICATION_XML)
public Response findDocumentMetadata(@PathParam("docId")
final String docId)
{
    Response response = findMetadataForDocument(docId);

    return response;
}


@GET
@Path("/{corid}/metadata")
@Produces(MediaType.APPLICATION_XML)
public Response findDocumentMetadataByCorId(@PathParam("corid")
final String corid)
{
    Response response = findMetadataForDocument(corid);

    return response;
}
4

1 に答える 1

2

最初に気付くのは、2 つのパスが競合することです。Jersey には、/1/metadata を最初の方法と 2 番目の方法のどちらにルーティングする必要があるかを知る基準がありません。パスを /doc/metadata/{docid} および /cor/metadata/{corid} として定義してみてください。お役に立てれば。

于 2013-02-11T23:56:49.920 に答える