在Jersey分辨率中生成媒体类型冲突错误

时间:2013-02-11 23:44:13

标签: java jersey

我在restful资源类中定义了以下两种方法。我正在使用泽西岛。但是,当我尝试运行一个单位时,它说错误,它们具有相同的媒体类型。我错过了什么吗?

严重:使用资源和/或提供程序类检测到以下错误和警告: 严重:产生媒体类型冲突。资源方法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)可以生成相同的媒体类型 2013年2月11日下午5:43:56 com.sun.jersey.test.framework.spi.container.inmemory.InMemoryTestContainerFactory $ InMemoryTestContainer stop 信息:停止低级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;
}

1 个答案:

答案 0 :(得分:3)

我注意到的第一件事是两条路径会发生冲突。 Jersey没有任何参考框架可以知道/ 1 /元数据是否应该路由到第一种或第二种方法。您可以尝试将路径定义为/ doc / metadata / {docid}和/ cor / metadata / {corid}。希望这会有所帮助。