使用Jasper Server运行jrxlm报告

时间:2016-05-27 14:33:35

标签: java jasper-reports jasperserver

我已经通过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();
    }
}

1 个答案:

答案 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。 是您应该放置报告的应用程序路径。