我已经通过iReport创建了jrxml报告。然后我用JasperServer运行它,它工作得很好。我已通过此URL生成pdf报告:
http://localhost:8081/jasperserver/flow.html/flowFile/my_report.pdf
效果很好但是当我尝试刷新页面时出现此错误:
An id is required to lookup a FlowDefinition
当我尝试在JasperServer客户端应用程序中调用此REST服务时,我收到此错误:
com.sun.jersey.api.client.UniformInterfaceException: Client response status: 500
这是调用REST服务的Java客户端应用程序:
public final static String serverUrl = "http://localhost:8081/jasperserver/flow.html/flowFile/my_report.xls";
public final static String serverUser = "jasperadmin";
public final static String serverPassword = "jasperadmin";
static File outPutDir= new File(System.getProperty("java.io.tmpdir"));
public static void main(String[] args) {
try {
Report report = new Report();
report.setUrl("/reports/samples/Employees");
report.setOutputFolder(outPutDir.getAbsolutePath());
JasperserverRestClient client = JasperserverRestClient.getInstance(serverUrl, serverUser, serverPassword);
File reportFile = client.getReportAsFile(report);
} catch (Exception e) {
e.printStackTrace();
}
}
答案 0 :(得分:2)
<强>流ID 强>
致电flow.html
时,您必须提供一项操作,该操作会放入flowId
。 JasperServer使用flow.html
提供可以通过URL访问的接口。例如,如果调用报告,则为:
_flowId=viewReportFlow
还必须提供报告和参数。因此,考虑到这一点,URL可能如下所示:
http://localhost:8081/jasperserver/flow.html?_flowId=viewReportFlow&reportUnit=/reports/samples/Employees&j_username=the_user&j_password=secret&output=pdf
服务器错误
连接到服务器时,使用此URL
http://localhost:8081/jasperserver/flow.html/flowFile/my_report.xls
{em>不 JasperserverRestClient
使用的服务器网址。服务器URL应如下所示:
http://localhost:8081/jasperserver
注意: flow.html
用于访问JasperServer而无需登录UI。 不是您应该放置报告的应用程序路径。