Java JasperReports服务器REST返回415个不支持的媒体类型
我已经在JasperReports服务器上创建了一个Jasper报告。如果我在管理员网页中单击它,报告将正确生成(通过首先查询我的数据库)并呈现。我还希望通过/reportExecutions REST调用运行报告,但无法使其正常工作。我使用以下代码发出POST请求:Java JasperReports服务器REST返回415个不支持的媒体类型,java,rest,jasperserver,Java,Rest,Jasperserver,我已经在JasperReports服务器上创建了一个Jasper报告。如果我在管理员网页中单击它,报告将正确生成(通过首先查询我的数据库)并呈现。我还希望通过/reportExecutions REST调用运行报告,但无法使其正常工作。我使用以下代码发出POST请求: String xml = "" + "<reportExecutionRequest>" + "..." + "</reportExecutionRequest>"; HttpPost pos
String xml = ""
+ "<reportExecutionRequest>"
+ "..."
+ "</reportExecutionRequest>";
HttpPost post = new HttpPost(
new URI("http://localhost:8080/rest_v2/reportExecutions"));
post.setHeader("Content-Type", "application/xml");
post.setEntity(new StringEntity(xml));
HttpResponse response = client.execute(post);
因此,它看起来接收的内容类型为“application/octet stream”,找不到消息体读取器。知道我做错了什么吗
谢谢。错误消息说您正在以
应用程序/octet流的形式发送XML。您的代码在httpclient-4.3.6的jaspersever 6.2.1实例上运行良好。也许你有多余的代码来重置内容类型头。我不认为我有多余的代码会把事情搞砸。我现在就让它工作。我确实记得在初始请求中添加了HTTP基本身份验证头。我认为这使它工作了,但是在下一个请求中它失败了,即检索请求状态。最后,我通过使用登录服务并跟踪会话cookie解决了这个问题。我无法获得多个使用HTTP basic的请求。不知道为什么。服务器似乎不跟踪基于用户名/密码的会话,而登录服务跟踪(基于会话cookie)
Caused by: com.sun.jersey.api.MessageException:
A message body reader for Java class
com.jaspersoft.jasperserver.jaxrs.report.
ReportExecutionRequest, and Java type class
com.jaspersoft.jasperserver.jaxrs.report.ReportExecutionRequest,
and MIME media type application/octet-stream was not found.