我正在处理使用pdf
生成jasper
的操作的集成测试用例。那个碧玉有一个sub-report
。要获取子报告(abc.jasper
中的web-app/reports/
)的路径,我首先使用
request.getSession().getServletContext().getRealPath("")
提供/home/mkb/workspace/my-project/web-app
,然后连接/reports/abc.jasper
以获取父jasper报告中的子报告。这在运行应用程序(run-app)时工作正常。
但是在测试(test-app)上面的代码给出了/home/mkb/workspace/my-project/target/work/scriptCache
,因此我得到了
net.sf.jasperreports.engine.JRException: Resource not found at :
/home/mkb/workspace/my-project/target/work/scriptCache/reports/abc.jasper
如何在测试用例中设置或修复此路径问题?(Grails 2.3.9)
答案 0 :(得分:2)
请使用ServletContextHolder类静态方法getRealPath()来获取真实的路径.g: -
ServletContextHolder.servletContext.getRealPath('/')
此代码将提供应用程序的web-app文件夹的路径。