2013-02-11 64 views
1

我有以下2种方法在我的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)可以产生相同的媒体类型 Feb 11,2013 5:43:56 PM com.sun.jersey.test.framework.spi.container.inmemory.InMemoryTestContainerFactory $ InMemoryTestContainer停止 信息:停止低水平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; 
} 

回答

3

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