CTA-K12 / JasperReportViewerBundle

A viewer extension to the MESD/JasperReportBundle
MIT License
0 stars 0 forks source link

Error on link to report from reportviewer #2

Open databoy opened 10 years ago

databoy commented 10 years ago

Clicking on a link in the list of resources on the reportviewer page brings up an error.

No route found for "GET /reportviewer/display/%2Freports%2FAllAccounts" (from "http://localhost/web/app_dev.php/reportviewer/")

Symfony 2.4.7 and JasperReports Product Version: 5.6.1 Build: 20140914_2356 the "AllAccounts" report is one of the sample reports installed with the server. I was able to fix it by changing the linkHandler in the client (removing "reports"), and the route definition in the JasperReportViewerBundle to include the "reports" default folder name from the JasperServer MesdJasperReportViewerBundle_display_report_viewer: pattern: /display/reports/{reportUri}

tyhand commented 10 years ago

I've been looking into this issue as well, but I've yet to find a solution. Typically the url encoding for the report uri's happen twice, once when I pass the uri to the url generator and again once in the url generator, so that the url will contain something along the lines of (%252Freports%252FAllAccounts). This way the encoded uri will not set off the limitation on encoded slashes that is present on some servers and so that Symfony will not attempt to tokenize the report uri.

However, in this case it appears that the url has only been encoded once and the router is attempting to read this akin to (reportviewer/display//reports/AllAcounts) which is causing the error. I haven't been able to find the exact cause of this, or recreate it, but I will continue to try and fix what is causing the issue.

I hope my responses haven't been too slow, I'll being working on trying to solve this issue and the others you've posted over the next day or two.

databoy commented 10 years ago

I really appreciate the responses. IIS 6+ disables processing of double-encoded URL values and throws an error when it encounters them in the request (before any ISAPI or application logic). So I had to do some custom changes to the links and the routing prefixes as mentioned above. As slashes are returned by the API from JasperServer, Symfony will thank they are part of the path. In the past as a workaround, I've used JSON formatting within the path (but ampersands can still be a problem)...