Jetty 找不到媒体类型为application/pdf的MessageBodyWriter

Jetty 找不到媒体类型为application/pdf的MessageBodyWriter,jetty,pdfbox,Jetty,Pdfbox,这在Jetty 9上确实有效 @GET @路径(“pdf/文件”) @制作(“应用程序/pdf”) 公共响应getFile(){ 字符串fileName=Environment.getFilePath()+testFile; File File=Environment.getFile(文件名); Response=Response.ok((对象)文件).build(); 返回响应; } 这个 @GET @路径(“pdf/plain”) @制作(“应用程序/pdf”) 公共响应getPlainP

这在Jetty 9上确实有效

@GET
@路径(“pdf/文件”)
@制作(“应用程序/pdf”)
公共响应getFile(){
字符串fileName=Environment.getFilePath()+testFile;
File File=Environment.getFile(文件名);
Response=Response.ok((对象)文件).build();
返回响应;
}
这个

@GET
@路径(“pdf/plain”)
@制作(“应用程序/pdf”)
公共响应getPlainPDF(){
字符串formName=Environment.getFilePath()+testFile;
PDDocument pdfDoc=PDF.getPDFDocument(formName);
PDStream ps=新PDStream(pdfDoc);
试一试{
OutputStream OutputStream=ps.createOutputStream();
Response=Response.ok((对象)outputStream.build();
返回响应;
}捕获(IOE异常){
System.out.println(“创建PDF响应时出错”+e.getMessage());
返回null;
}
}

“未找到媒体类型=应用程序/pdf的MessageBodyWriter”失败。是否可以使用PDFBox以编程方式创建PDF并将其作为PDF文件交付,而不首先将其保存到磁盘的某个位置?

@GET
@Path
@products
不属于Jetty。这是相关的吗?如果是这样,您可能希望在问题中包含这些标记。您可以保存到OutputStream:public void save(OutputStream output)-这就是你想要的吗?@Joakim是的,注释是jax.ws.rs的一部分,我通常使用它来生成org.eclipse.jetty.servlet.ServletHolder方法……到目前为止,它对我来说最有效,可以为小型原型获得有效的jetty答案projects@Tilman我希望得到与第一个结果相同的PDF文件答案,但不将其保存为文件如果可能的话?@user3732793这正是我在评论中回答的问题。例如,您可以保存到BufferedArrayOutputStream。或任何输出流。
@GET
@Path
@products
不属于Jetty。这是相关的吗?如果是这样,您可能希望在问题中包含这些标记。您可以保存到OutputStream:public void save(OutputStream output)-这就是你想要的吗?@Joakim是的,注释是jax.ws.rs的一部分,我通常使用它来生成org.eclipse.jetty.servlet.ServletHolder方法……到目前为止,它对我来说最有效,可以为小型原型获得有效的jetty答案projects@Tilman我希望得到与第一个结果相同的PDF文件答案,但不将其保存为文件如果可能的话?@user3732793这正是我在评论中回答的问题。例如,您可以保存到BufferedArrayOutputStream。或任何输出流。