我正在尝试开发REST服务,该服务返回XML中的对象列表,由于JAXB注释,所以反对一致。 但我现在正在尝试做的是在调用REST服务时使得返回的列表被下载。 包webService;
@Path( "/WebService" )
public class FeedService {
@GET
@Path( "/GetSequenceId/{id}" )
@Consumes( MediaType.APPLICATION_XML )
// @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public Response showFileStoreDetails( @PathParam( "id" ) String id)
throws ArchiveException, IOException {
// String feeds = null;
Sequence feedData = null;
Liststeps listStep = new Liststeps();
// List<attachement> listAttachementd = null;
// File file = new File( "file.xml" );
// Response response = null;
try {
/*
* Database database = new Database(); Connection connection =
* database.Get_Connection();
*/
// ProjectManager projectManager = new ProjectManager();
feedData = listStep.getSteps( Integer.parseInt( id ) );
// listAttachementd = listStep.getAttachement();
// StringBuffer sb = new StringBuffer();
// Gson gson = new Gson();
// System.out.println( gson.toJson( feedData ) );
// feeds = gson.toJson( feedData );
// String xml = org.json.XML.toString(gson);
// XStream xstream = new XStream();
} catch ( NumberFormatException e ) {
System.out.println( e );
} catch ( Exception e ) {
e.printStackTrace();
}
// response=feeds;
return Response.status( 200 ).entity( feedData ).build();
}
}
答案 0 :(得分:0)
如果使用@RmlponseBody在控制器中使用@XmlRootElement和返回类型注释结果类,则将成为XML
编辑:也就是说,如果你使用Spring MVC作为REST服务......
答案 1 :(得分:0)
如果您使用的是Jackson或类似的转换,则应将@XmlRootElement添加到对象的顶部 like in this image.
请注意,您正在使用带有GET方法的@Consume,并且可以直接将参数解析为Integer,因此您不需要获取String并解析为整数。即使出现错误,此方法也将始终返回200.
@GET
@Path( "/GetSequenceId/{id}" )
@Produces( MediaType.APPLICATION_XML )
public Response showFileStoreDetails( @PathParam( "id" ) int id){
final Sequence feedData = new Liststesp().getSteps(id);
if (feedData == null){
return Response.status( 400 ).entity("some error").build();
}else{
return Response.status( 200 ).entity( feedData ).build();
}
}