javaflex 14 de nov. de 2018
Veja se o exemplo abaixo ajuda, pelo menos está um pouco diferente do que você fez:
No lado client não tem mistério e nem depende de Angular, coloca um elemento <a> com href apontando pra essa requisição. Tem outras formas também, mas primeiro teste pela forma mais simples e mais usada.
guilhermebhte 14 de nov. de 2018
Este exemplo , deu erro :
@RequestMapping ( value = “ helloReport1 ” , method = RequestMethod . GET )
@ResponseBody
public void getRpt1 ( HttpServletResponse response ) throws JRException , IOException {
InputStream jasperStream = this . getClass (). getResourceAsStream ( "/jasperreports/HelloWorld1.jasper" );
Map < String , Object > params = new HashMap <> ();
JasperReport jasperReport = ( JasperReport ) JRLoader . loadObject ( jasperStream );
JasperPrint jasperPrint = JasperFillManager . fillReport ( jasperReport , params , new JREmptyDataSource ());
response . setContentType ( "application/x-pdf" );
response . setHeader ( "Content-disposition" , "inline; filename=helloWorldReport.pdf" );
final OutputStream outStream = response . getOutputStream ();
JasperExportManager . exportReportToPdfStream ( jasperPrint , outStream );
}
20 : 54 : 56 , 303 ERROR [ io . undertow . request ] ( default task - 3 ) UT005023 : Exception handling request to / auth - seguranca - web / admin / seg // relatorio / grupo : org . springframework . web . util . NestedServletException : Request processing failed ; nested exception is java . lang . ClassCastException : java . io . FileInputStream cannot be cast to com . lowagie . text . pdf . codec . Base64 $ InputStream
at org . springframework . web . servlet . FrameworkServlet . processRequest ( FrameworkServlet . java : 982 ) [ spring - webmvc - 4.3 . 5. RELEASE . jar : 4.3 . 5. RELEASE ]
at org . springframework . web . servlet . FrameworkServlet . doPost ( FrameworkServlet . java : 872 ) [ spring - webmvc - 4.3 . 5. RELEASE . jar : 4.3 . 5. RELEASE ]
at javax . servlet . http . HttpServlet . service ( HttpServlet . java : 707 ) [ jboss - servlet - api_3 . 1 _spec - 1.0 . 0. Final . jar : 1.0 . 0. Final ]
at org . springframework . web . servlet . FrameworkServlet . service ( FrameworkServlet . java : 846 ) [ spring - webmvc - 4.3 . 5. RELEASE . jar : 4.3 . 5. RELEASE ]
at javax . servlet . http . HttpServlet . service ( HttpServlet . java : 790 ) [ jboss - servlet - api_3 . 1 _spec - 1.0 . 0. Final . jar : 1.0 . 0. Final ]
at io . undertow . servlet . handlers . ServletHandler . handleRequest ( ServletHandler . java : 86 ) [ undertow - servlet - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at io . undertow . servlet . handlers . FilterHandler $ FilterChainImpl . doFilter ( FilterHandler . java : 130 ) [ undertow - servlet - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at org . springframework . security . web . FilterChainProxy $ VirtualFilterChain . doFilter ( FilterChainProxy . java : 317 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at org . springframework . security . web . access . intercept . FilterSecurityInterceptor . invoke ( FilterSecurityInterceptor . java : 127 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at org . springframework . security . web . access . intercept . FilterSecurityInterceptor . doFilter ( FilterSecurityInterceptor . java : 91 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at org . springframework . security . web . FilterChainProxy $ VirtualFilterChain . doFilter ( FilterChainProxy . java : 331 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at org . springframework . security . web . access . ExceptionTranslationFilter . doFilter ( ExceptionTranslationFilter . java : 114 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at org . springframework . security . web . FilterChainProxy $ VirtualFilterChain . doFilter ( FilterChainProxy . java : 331 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at org . springframework . security . web . session . SessionManagementFilter . doFilter ( SessionManagementFilter . java : 137 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at org . springframework . security . web . FilterChainProxy $ VirtualFilterChain . doFilter ( FilterChainProxy . java : 331 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at org . springframework . security . web . authentication . AnonymousAuthenticationFilter . doFilter ( AnonymousAuthenticationFilter . java : 111 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at org . springframework . security . web . FilterChainProxy $ VirtualFilterChain . doFilter ( FilterChainProxy . java : 331 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at org . springframework . security . web . servletapi . SecurityContextHolderAwareRequestFilter . doFilter ( SecurityContextHolderAwareRequestFilter . java : 170 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at org . springframework . security . web . FilterChainProxy $ VirtualFilterChain . doFilter ( FilterChainProxy . java : 331 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at org . springframework . security . web . savedrequest . RequestCacheAwareFilter . doFilter ( RequestCacheAwareFilter . java : 63 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at org . springframework . security . web . FilterChainProxy $ VirtualFilterChain . doFilter ( FilterChainProxy . java : 331 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at br . eti . netsoft . authSeguranca . jwt . JwtAuthenticationTokenFilter . doFilterInternal ( JwtAuthenticationTokenFilter . java : 59 ) [ classes :]
at org . springframework . web . filter . OncePerRequestFilter . doFilter ( OncePerRequestFilter . java : 107 ) [ spring - web - 4.3 . 5. RELEASE . jar : 4.3 . 5. RELEASE ]
at org . springframework . security . web . FilterChainProxy $ VirtualFilterChain . doFilter ( FilterChainProxy . java : 331 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at org . springframework . security . web . authentication . logout . LogoutFilter . doFilter ( LogoutFilter . java : 116 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at org . springframework . security . web . FilterChainProxy $ VirtualFilterChain . doFilter ( FilterChainProxy . java : 331 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at org . springframework . security . web . header . HeaderWriterFilter . doFilterInternal ( HeaderWriterFilter . java : 64 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at org . springframework . web . filter . OncePerRequestFilter . doFilter ( OncePerRequestFilter . java : 107 ) [ spring - web - 4.3 . 5. RELEASE . jar : 4.3 . 5. RELEASE ]
at org . springframework . security . web . FilterChainProxy $ VirtualFilterChain . doFilter ( FilterChainProxy . java : 331 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at org . springframework . security . web . context . SecurityContextPersistenceFilter . doFilter ( SecurityContextPersistenceFilter . java : 105 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at org . springframework . security . web . FilterChainProxy $ VirtualFilterChain . doFilter ( FilterChainProxy . java : 331 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at org . springframework . security . web . context . request . async . WebAsyncManagerIntegrationFilter . doFilterInternal ( WebAsyncManagerIntegrationFilter . java : 56 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at org . springframework . web . filter . OncePerRequestFilter . doFilter ( OncePerRequestFilter . java : 107 ) [ spring - web - 4.3 . 5. RELEASE . jar : 4.3 . 5. RELEASE ]
at org . springframework . security . web . FilterChainProxy $ VirtualFilterChain . doFilter ( FilterChainProxy . java : 331 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at org . springframework . security . web . FilterChainProxy . doFilterInternal ( FilterChainProxy . java : 214 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at org . springframework . security . web . FilterChainProxy . doFilter ( FilterChainProxy . java : 177 ) [ spring - security - web - 4.2 . 1. RELEASE . jar : 4.2 . 1. RELEASE ]
at org . springframework . web . filter . DelegatingFilterProxy . invokeDelegate ( DelegatingFilterProxy . java : 346 ) [ spring - web - 4.3 . 5. RELEASE . jar : 4.3 . 5. RELEASE ]
at org . springframework . web . filter . DelegatingFilterProxy . doFilter ( DelegatingFilterProxy . java : 262 ) [ spring - web - 4.3 . 5. RELEASE . jar : 4.3 . 5. RELEASE ]
at io . undertow . servlet . core . ManagedFilter . doFilter ( ManagedFilter . java : 60 ) [ undertow - servlet - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at io . undertow . servlet . handlers . FilterHandler $ FilterChainImpl . doFilter ( FilterHandler . java : 132 ) [ undertow - servlet - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at io . undertow . servlet . handlers . FilterHandler . handleRequest ( FilterHandler . java : 85 ) [ undertow - servlet - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at io . undertow . servlet . handlers . security . ServletSecurityRoleHandler . handleRequest ( ServletSecurityRoleHandler . java : 62 ) [ undertow - servlet - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at io . undertow . servlet . handlers . ServletDispatchingHandler . handleRequest ( ServletDispatchingHandler . java : 36 ) [ undertow - servlet - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at org . wildfly . extension . undertow . security . SecurityContextAssociationHandler . handleRequest ( SecurityContextAssociationHandler . java : 78 )
at io . undertow . server . handlers . PredicateHandler . handleRequest ( PredicateHandler . java : 43 ) [ undertow - core - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at io . undertow . servlet . handlers . security . SSLInformationAssociationHandler . handleRequest ( SSLInformationAssociationHandler . java : 131 ) [ undertow - servlet - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at io . undertow . servlet . handlers . security . ServletAuthenticationCallHandler . handleRequest ( ServletAuthenticationCallHandler . java : 57 ) [ undertow - servlet - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at io . undertow . server . handlers . PredicateHandler . handleRequest ( PredicateHandler . java : 43 ) [ undertow - core - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at io . undertow . security . handlers . AbstractConfidentialityHandler . handleRequest ( AbstractConfidentialityHandler . java : 46 ) [ undertow - core - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at io . undertow . servlet . handlers . security . ServletConfidentialityConstraintHandler . handleRequest ( ServletConfidentialityConstraintHandler . java : 64 ) [ undertow - servlet - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at io . undertow . security . handlers . AuthenticationMechanismsHandler . handleRequest ( AuthenticationMechanismsHandler . java : 58 ) [ undertow - core - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at io . undertow . servlet . handlers . security . CachedAuthenticatedSessionHandler . handleRequest ( CachedAuthenticatedSessionHandler . java : 70 ) [ undertow - servlet - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at io . undertow . security . handlers . SecurityInitialHandler . handleRequest ( SecurityInitialHandler . java : 76 ) [ undertow - core - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at io . undertow . server . handlers . PredicateHandler . handleRequest ( PredicateHandler . java : 43 ) [ undertow - core - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at org . wildfly . extension . undertow . security . jacc . JACCContextIdHandler . handleRequest ( JACCContextIdHandler . java : 61 )
at io . undertow . server . handlers . PredicateHandler . handleRequest ( PredicateHandler . java : 43 ) [ undertow - core - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at io . undertow . server . handlers . PredicateHandler . handleRequest ( PredicateHandler . java : 43 ) [ undertow - core - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at io . undertow . servlet . handlers . ServletInitialHandler . handleFirstRequest ( ServletInitialHandler . java : 261 ) [ undertow - servlet - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at io . undertow . servlet . handlers . ServletInitialHandler . dispatchRequest ( ServletInitialHandler . java : 248 ) [ undertow - servlet - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at io . undertow . servlet . handlers . ServletInitialHandler . access $ 000 ( ServletInitialHandler . java : 77 ) [ undertow - servlet - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at io . undertow . servlet . handlers . ServletInitialHandler $ 1. handleRequest ( ServletInitialHandler . java : 167 ) [ undertow - servlet - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at io . undertow . server . Connectors . executeRootHandler ( Connectors . java : 199 ) [ undertow - core - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at io . undertow . server . HttpServerExchange $ 1. run ( HttpServerExchange . java : 761 ) [ undertow - core - 1.1 . 8. Final . jar : 1.1 . 8. Final ]
at java . util . concurrent . ThreadPoolExecutor . runWorker ( ThreadPoolExecutor . java : 1142 ) [ rt . jar : 1.8 . 0 _131 ]
at java . util . concurrent . ThreadPoolExecutor $ Worker . run ( ThreadPoolExecutor . java : 617 ) [ rt . jar : 1.8 . 0 _131 ]
at java . lang . Thread . run ( Thread . java : 748 ) [ rt . jar : 1.8 . 0 _131 ]
Caused by : java . lang . ClassCastException : java . io . FileInputStream cannot be cast to com . lowagie . text . pdf . codec . Base64 $ InputStream
at br . eti . netsoft . authSeguranca . relatorio . RelatorioJasper . getRpt1 ( RelatorioJasper . java : 69 ) [ classes :]
at sun . reflect . NativeMethodAccessorImpl . invoke0 ( Native Method ) [ rt . jar : 1.8 . 0 _131 ]
at sun . reflect . NativeMethodAccessorImpl . invoke ( NativeMethodAccessorImpl . java : 62 ) [ rt . jar : 1.8 . 0 _131 ]
at sun . reflect . DelegatingMethodAccessorImpl . invoke ( DelegatingMethodAccessorImpl . java : 43 ) [ rt . jar : 1.8 . 0 _131 ]
at java . lang . reflect . Method . invoke ( Method . java : 498 ) [ rt . jar : 1.8 . 0 _131 ]
at org . springframework . web . method . support . InvocableHandlerMethod . doInvoke ( InvocableHandlerMethod . java : 220 ) [ spring - web - 4.3 . 5. RELEASE . jar : 4.3 . 5. RELEASE ]
at org . springframework . web . method . support . InvocableHandlerMethod . invokeForRequest ( InvocableHandlerMethod . java : 134 ) [ spring - web - 4.3 . 5. RELEASE . jar : 4.3 . 5. RELEASE ]
at org . springframework . web . servlet . mvc . method . annotation . ServletInvocableHandlerMethod . invokeAndHandle ( ServletInvocableHandlerMethod . java : 116 ) [ spring - webmvc - 4.3 . 5. RELEASE . jar : 4.3 . 5. RELEASE ]
at org . springframework . web . servlet . mvc . method . annotation . RequestMappingHandlerAdapter . invokeHandlerMethod ( RequestMappingHandlerAdapter . java : 827 ) [ spring - webmvc - 4.3 . 5. RELEASE . jar : 4.3 . 5. RELEASE ]
at org . springframework . web . servlet . mvc . method . annotation . RequestMappingHandlerAdapter . handleInternal ( RequestMappingHandlerAdapter . java : 738 ) [ spring - webmvc - 4.3 . 5. RELEASE . jar : 4.3 . 5. RELEASE ]
at org . springframework . web . servlet . mvc . method . AbstractHandlerMethodAdapter . handle ( AbstractHandlerMethodAdapter . java : 85 ) [ spring - webmvc - 4.3 . 5. RELEASE . jar : 4.3 . 5. RELEASE ]
at org . springframework . web . servlet . DispatcherServlet . doDispatch ( DispatcherServlet . java : 963 ) [ spring - webmvc - 4.3 . 5. RELEASE . jar : 4.3 . 5. RELEASE ]
at org . springframework . web . servlet . DispatcherServlet . doService ( DispatcherServlet . java : 897 ) [ spring - webmvc - 4.3 . 5. RELEASE . jar : 4.3 . 5. RELEASE ]
at org . springframework . web . servlet . FrameworkServlet . processRequest ( FrameworkServlet . java : 970 ) [ spring - webmvc - 4.3 . 5. RELEASE . jar : 4.3 . 5. RELEASE ]
... 65 more
javaflex 14 de nov. de 2018
Debugando, informa qual dessas linhas deu erro.
javaflex 14 de nov. de 2018
Está mapeado como helloReport1 e voce testou chamado por /grupo?
guilhermebhte 16 de nov. de 2018
Consegui fazer funcionar sem dar erro.
Mas mesmo assim não mostra nada no browser ou pede para fazer o download.
O que falta ?
javaflex 16 de nov. de 2018
Quando coloca url no navegador, qual é a resposta? Não como usuário, mas resposta da requisicao.
dlemos 16 de nov. de 2018
Se esta chamando o relatório via angular, deve disponibilizar o relatório via rest, como exemplo abaixo:
@GET
@Path ( "download" )
@Produces ( "application/pdf" )
public Response download () {
File file = null ;
ResponseBuilder rb = null ;
String filePath = reportService . gerarRelatorio ();
file = new File ( filePath );
rb = Response . ok (( Object ) file );
rb . header ( "Content-Disposition" , "filename=report.pdf" );
return rb . build ();
}
guilhermebhte 16 de nov. de 2018
Pelo que entendi, esta parte String filePath = reportService.gerarRelatorio(); , tem que ser uma string. No meu caso é gerado pelo jasper o PDF. Como faço ?
guilhermebhte 16 de nov. de 2018
Quando clicom em Click here to download it , conforme mostro na imagem, ele faz o download do relatório.
dlemos 16 de nov. de 2018
Passa o caminho para o metodo, e depois usa este caminho passado.
JasperExportManager.exportReportToPdfFile(jasperPrint, filePath);
guilhermebhte 16 de nov. de 2018
Não entendi.
Criei este método que vai ser generico.
protected void imprimirTodos ( Map < String , Object > params , Set < ? > dados ,
HttpServletResponse response , String nome , String caminho ,
TipoRelatorioEnum extensaoRelatorio ) throws JRException ,
IOException {
InputStream jasperStream = this . getClass () . getResourceAsStream (
Constantes . RELATORIOS + caminho + nome + Constantes . JASPER );
JasperReport jasperReport = ( JasperReport ) JRLoader
. loadObject ( jasperStream );
JasperPrint jasperPrint = JasperFillManager . fillReport ( jasperReport ,
params , new JRBeanCollectionDataSource ( dados ));
response . setContentType ( Constantes . APPLICATION_PDF );
response . setHeader (
Constantes . CONTENT_DISPOSITION ,
Constantes . INLINE_FILENAME + nome
+ extensaoRelatorio . getDescricao ());
final OutputStream outStream = response . getOutputStream ();
JasperExportManager . exportReportToPdfStream ( jasperPrint , outStream );
}
Como iriei prosseguir ?
javaflex 17 de nov. de 2018
Entao funcionou a requisicao do pdf. Quando voce coloca um elemento <a> no seu html com href apontando pro link da sua requisicao, acontece o que?
guilhermebhte 17 de nov. de 2018
Funciona normalmente.
Gera o PDF e salva no Downloads do usuário do windows.
Mas como o sistema precisa de segurança, tenho que fazer que este método só usuários que tenha acesso a este grupo. @PreAuthorize (“hasAnyRole(‘ROLE_ADMINISTRADOR’)”) .
Sendo assim ele tem que passar pelo interceptor do angular e assim levar o usuário logado no sistema para imprimir.
javaflex 17 de nov. de 2018
Bom que tenha funcionado o download.
Sobre a parte de segurança com Angular não sei te ajudar. Angular só complica o que é simples sem ele.
guilhermebhte 17 de nov. de 2018
Entendi. mas valeu pela ajuda.
Vou ver o que faço