使用KTOR后端创建JasperReports

发布于 2025-02-12 23:20:30 字数 1400 浏览 1 评论 0原文

我被困在创建PDF报告中。我与Jaspersoft Studio创建了一个报告。现在,我想使用我的KTOR后端填写报告。要激活该功能,我正在使用Postman。我将此[ /report /1]发送到我的后端。

结果,我收到此错误消息:

net.sf.jasperreports.engine.jrexception:加载时找不到类 来自文件的对象:c:\ path \ test.jasper。

要填写报告,我使用以下功能:

fun createReport (userID: String) {
    val id = userID
    JasperCreate(id)
}

fun JasperCreate (userid: String) {
    val parameters = HashMap<String, Any>()
    parameters.put("ID", userid)
    val path = "C://MyFlowDemo/Jasper/Vorlage/Test.jasper"
    val connection = DriverManager.getConnection("jdbc:mysql://localhost/htz", "android", "myflow")
    val jasperPrint = JasperFillManager.fillReport(path, parameters, connection)
    JasperReport(jasperPrint)
}

fun JasperReport (jasperPrint: JasperPrint) {
    val exporter = JRPdfExporter()
    exporter.setExporterInput(SimpleExporterInput(jasperPrint))
    exporter.setExporterOutput(SimpleOutputStreamExporterOutput("C://MyFlowDemo/Dokument/Test.pdf"))
    val configuration = SimplePdfExporterConfiguration()
    exporter.setConfiguration(configuration)
    exporter.exportReport()
}

// JasperReport
get("/report/{p1}") {
    val pUserID = call.parameters["p1"]
    db.createReport(pUserID!!)
    call.respondText { "Report finished" }
}

当我使用Jaspersoft Studio创建test.jasper的PDF时,我发送ID 1以创建PDF并起作用。

任何人都知道,找不到哪个课程,或者我如何找出需要哪个类?

I got stuck in creating PDF reports. I created a report with Jaspersoft Studio. Now, I want to fill the reports using my Ktor back-end. To activate the function, I'm using postman. I send this [ /report/1 ] with get to my back-end.

As result, i get this error message:

net.sf.jasperreports.engine.JRException: Class not found when loading
object from file: C:\path\Test.jasper.

To fill the report, I use these functions:

fun createReport (userID: String) {
    val id = userID
    JasperCreate(id)
}

fun JasperCreate (userid: String) {
    val parameters = HashMap<String, Any>()
    parameters.put("ID", userid)
    val path = "C://MyFlowDemo/Jasper/Vorlage/Test.jasper"
    val connection = DriverManager.getConnection("jdbc:mysql://localhost/htz", "android", "myflow")
    val jasperPrint = JasperFillManager.fillReport(path, parameters, connection)
    JasperReport(jasperPrint)
}

fun JasperReport (jasperPrint: JasperPrint) {
    val exporter = JRPdfExporter()
    exporter.setExporterInput(SimpleExporterInput(jasperPrint))
    exporter.setExporterOutput(SimpleOutputStreamExporterOutput("C://MyFlowDemo/Dokument/Test.pdf"))
    val configuration = SimplePdfExporterConfiguration()
    exporter.setConfiguration(configuration)
    exporter.exportReport()
}

// JasperReport
get("/report/{p1}") {
    val pUserID = call.parameters["p1"]
    db.createReport(pUserID!!)
    call.respondText { "Report finished" }
}

When I create a PDF of Test.jasper with Jaspersoft Studio, I send ID 1 to create a PDF and it works.

Anyone knows, which class is not found or how I find out which class is needed?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文