2014-10-28 6 views
0

jasper을 사용하여 pdf을 생성하는 동작의 통합 테스트 케이스에서 작업하고 있습니다. 재 스퍼는 sub-report입니다. 내가 처음 /home/mkb/workspace/my-project/web-app 다음 부모 재스퍼 보고서에서 하위 보고서를 얻을 수 /reports/abc.jasper을 연결을 제공spock 통합 테스트 케이스에서 실제 경로 문제가 발생했습니다

request.getSession().getServletContext().getRealPath("") 

를 사용하여 실제 경로를 가져 오는하고 하위 보고서의 경로 (web-app/reports/에서 abc.jasper)을 얻으려면. 이것은 응용 프로그램 (run-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 

는 어떻게 설정하거나 테스트 케이스에서이 경로의 문제를 해결할 수 있습니다 무엇입니까 동안?

ServletContextHolder.servletContext.getRealPath('/') 

이 코드는 응용 프로그램의 웹 응용 프로그램 폴더의 경로를 줄 것이다 -이 :

답변

2

실제 path.eg를 얻을 수 ServletContextHolder 클래스 정적 메소드 getRealPath()를 사용하십시오 (2.3.9 Grails의) .

+0

멋진 답변입니다. 감사 – user1690588