我是JAX-RS的新手并且遇到了许多问题(奇怪的是让我想念SOAP)。这是我的代码片段。 getMergedPDFReport方法应该获取一个文件并在进行一些处理后返回一个文件。之后我会担心客户端
@GET
@Produces("application/pdf")
@Path("merge-service")
public Response getMergedPDFReport(@QueryParam(ApiParameters.WORD_DOCUMENT) File wordDocument,
@QueryParam(ApiParameters.MERGE_FIELDS)Object[] fieldNames,
@QueryParam(ApiParameters.MERGE_VALUES) Object [] fieldValues) {
ResponseBuilder builder =null;
try {
File product = DocumentUtil.generatePDF(wordDocument, fieldNames, fieldValues);
builder = Response.ok(product);
builder.header("Content-Disposition", "attachment; filename=\\\"report.pdf\\\"");
} catch (Exception e) {
e.printStackTrace();
}
return builder.build();
}
我的服务器日志上收到一条警告:“找不到类型为public javax.ws.rs.core.Response的参数的注入源”。我似乎不知道为什么。 2.我使用@QueryParam注释吗?我应该将它用于File和数组的类型吗?我在网上看到了很多关于@BeanParam,@ MatrixParam和@QueryParam的争论。由于我不知道前两个是做什么的,所以我决定保持简单。
任何帮助都将不胜感激。
答案 0 :(得分:0)
我认为你不能将queryParam用于文件。您必须使用带有多部分表单的@Consumes。