1

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

严重:在资源和/或提供程序类中检测到以下错误和警告:严重:产生媒体类型冲突。资源方法 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) 可以产生相同的媒体类型 Feb 11, 2013 5:43:56 PM com.sun.jersey.test.framework.spi.container.inmemory.InMemoryTestContainerFactory$InMemoryTestContainer stop INFO:停止低级 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

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

于 2013-02-11T23:56:49.920 回答