我在宁静的资源类中定义了以下两种方法。我正在使用泽西岛。但是,当我尝试运行单元时,提示错误,它们具有相同的媒体类型。我想念什么吗?
严重:资源和/或提供程序类已检测到以下错误和警告:
严重:产生媒体类型冲突。资源方法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
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;
}
最佳答案
我注意到的第一件事是两条路径会冲突。泽西岛没有任何参考框架可以知道是否应该将/ 1 /元数据路由到第一种或第二种方法。您可以尝试将路径定义为/ doc / metadata / {docid}和/ cor / metadata / {corid}。希望这可以帮助。
关于java - 在Jersey分辨率中产生媒体类型冲突错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14823055/