Pugin vraptor-jasperreport - java.io.FileNotFoundException

67 views
Skip to first unread message

Pablo Souza

unread,
Sep 18, 2016, 10:42:53 AM9/18/16
to Caelum Vraptor
Pessoal,

Qual são os requisitos para o bom funcionamento do plugin vraptor-jasperreport?

Estou tentando rodar em um Wildfly 9, Java 1.8 e Vraptor 4.2.0-RC3.

Ao tentar rodar o plugin não consegue achar o path do contexto e estoura o erro:

Caused by: net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: null\teste.jasper
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:114)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:103)
at net.sf.jasperreports.engine.util.JRLoader.loadObjectFromFile(JRLoader.java:94)
at br.com.caelum.vraptor.jasperreports.ReportLoader.loadFromDisk(ReportLoader.java:42)
at br.com.caelum.vraptor.jasperreports.ReportLoader.loadFromCache(ReportLoader.java:29)
at br.com.caelum.vraptor.jasperreports.ReportLoader.load(ReportLoader.java:20)
at br.com.caelum.vraptor.jasperreports.ReportLoader$Proxy$_$$_WeldClientProxy.load(Unknown Source)
at br.com.caelum.vraptor.jasperreports.exporter.DefaultExporter.fill(DefaultExporter.java:79)
at br.com.caelum.vraptor.jasperreports.exporter.DefaultExporter.fillAll(DefaultExporter.java:72)
... 136 more

O null acontece no ReportPathResolver.java.


--
Atenciosamente,

Pablo Souza
Twitter: @pvrsouza
Tel.: (71) 9983-7775

Rodrigo Turini

unread,
Sep 18, 2016, 11:29:37 PM9/18/16
to Caelum Vraptor
Oi Pablo

Esse é um plugin de usuário, não somos nós que mantemos, então não saberia dizer ao certo os requisitos. Mas olhando o código não parece depender de nada específico de alguma versão mais nova do VRaptor. 

A exception não mostra mais nada relevante? 

Se quiser investigar mais a fundo, experimenta baixar o código do plugin e debugar local. Ou talvez atualizar as dependências dele e ver se acontece algum erro de compilação e o mesmo problema de execução. 

--
Você recebeu essa mensagem porque está inscrito no grupo "caelum-vraptor" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para caelum-vrapto...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para caelum-...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/caelum-vraptor.
Para mais opções, acesse https://groups.google.com/d/optout.

Pablo Souza

unread,
Sep 19, 2016, 8:50:48 AM9/19/16
to Caelum Vraptor
Então Turini,

Debugando eu percebi que acontece um erro que não sei o motivo de estar acontecendo: ele não acha o path do contexto. A meu ver, e pelo que até o momento pesquisei, está tudo certo com a implementação:

@ApplicationScoped
public class ReportPathResolver {

@Inject private ServletContext context;


private String getRelativeReportsPath(){
String param = context.getInitParameter("vraptor.reports.path");
return param != null ? param.trim() : DEFAULT_REPORTS_PATH;
}

public String getReportsPath(){
return context.getRealPath(getRelativeReportsPath()) + SEPARATOR; //aqui ele retorna null na saída do getRealPath()
}

}



Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para caelum-vraptor+unsubscribe@googlegroups.com.
Para postar nesse grupo, envie um e-mail para caelum-vraptor@googlegroups.com.

--
Você recebeu essa mensagem porque está inscrito no grupo "caelum-vraptor" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para caelum-vraptor+unsubscribe@googlegroups.com.
Para postar nesse grupo, envie um e-mail para caelum-vraptor@googlegroups.com.

Cleber Angelo

unread,
Sep 20, 2016, 9:09:15 AM9/20/16
to caelum-...@googlegroups.com
Pablo, nunca usei o plugin, mas pelos erros, parece que o parâmetro
vraptor.reports.path
não está definido, gerando o erro
Caused by: net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: null\teste.jasper

Att,
Cleber.

Para postar nesse grupo, envie um e-mail para caelum-...@googlegroups.com.

--
Você recebeu essa mensagem porque está inscrito no grupo "caelum-vraptor" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para caelum-vraptor+unsubscribe@googlegroups.com.
Para postar nesse grupo, envie um e-mail para caelum-...@googlegroups.com.



--
Atenciosamente,

Pablo Souza
Twitter: @pvrsouza
Tel.: (71) 9983-7775

--

Pablo Souza

unread,
Sep 20, 2016, 9:00:01 PM9/20/16
to Caelum Vraptor
Cleber,

Obrigado pela resposta. Mas o problema não está ai. E sim na chamada do context.getRealPath();

Na verdade existe um problema relacionado ao container. Em teoria esse código funcionaria em um Tomcat. Segundo a documentação de especificação do Servlet:

"In situations where the servlet container cannot determine a valid file path for these
methods, such as when the Web application is executed from an archive, on a remote
file system not accessible locally, or in a database, these methods must return null.
Resources inside the META-INF/resources directory of JAR file must be considered
only if the container has unpacked them from their containing JAR file when a call to
getRealPath() is made, and in this case MUST return the unpacked location."

Baseado nisso o que eu fiz foi pegar o ServletRequest a partir do HttpServletRequest:

@ApplicationScoped
public class ReportPathResolver {

@Inject private ServletContext context;
@Inject private HttpServletRequest request;
public String getReportsPath(){
ServletContext myContext  = request.getSession().getServletContext();
return myContext.getRealPath(getRelativeReportsPath()) + SEPARATOR;
}

O resultado disso foi:

'C:\e2pd\audmob\web\ambiente\wildfly-9.0.2.Final\standalone\deployments\audmob.war\audmob\src\main\webapp\WEB-INF\reports\teste.jasper"

Mas ai me deparei com outro problema, quando o plugin chama o JRLoader.loadObjectFromFile(template) ( onde template é o endereço que eu copiei acima) ele dá erro novamente:

21:58:29,868 ERROR [io.undertow.request] (default task-2) UT005023: Exception handling request to /audmob/relatorios/teste/pdf: br.com.caelum.vraptor.InterceptionException: java.lang.RuntimeException: net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: C:\e2pd\audmob\web\ambiente\wildfly-9.0.2.Final\standalone\deployments\audmob.war\audmob\src\main\webapp\WEB-INF\reports\teste.jasper
at br.com.caelum.vraptor.interceptor.StepInvoker.invokeMethod(StepInvoker.java:69)
at br.com.caelum.vraptor.interceptor.StepInvoker.tryToInvoke(StepInvoker.java:55)
at br.com.caelum.vraptor.interceptor.StepInvoker$Proxy$_$$_WeldClientProxy.tryToInvoke(Unknown Source)
at br.com.caelum.vraptor.interceptor.InterceptorExecutor.executeAround(InterceptorExecutor.java:75)
at br.com.caelum.vraptor.interceptor.InterceptorExecutor$Proxy$_$$_WeldClientProxy.executeAround(Unknown Source)
at br.com.caelum.vraptor.interceptor.AspectStyleInterceptorHandler.execute(AspectStyleInterceptorHandler.java:85)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:83)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:63)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:83)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:63)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:83)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.start(DefaultInterceptorStack.java:93)
at br.com.caelum.vraptor.core.DefaultInterceptorStack$Proxy$_$$_WeldClientProxy.start(Unknown Source)
at br.com.caelum.vraptor.observer.RequestHandlerObserver.handle(RequestHandlerObserver.java:93)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:88)
at org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:78)
at org.jboss.weld.injection.MethodInvocationStrategy$SimpleMethodInvocationStrategy.invoke(MethodInvocationStrategy.java:129)
at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:306)
at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:284)
at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:262)
at org.jboss.weld.event.ObserverNotifier.notifySyncObservers(ObserverNotifier.java:271)
at org.jboss.weld.event.ObserverNotifier.notify(ObserverNotifier.java:260)
at org.jboss.weld.event.EventImpl.fire(EventImpl.java:89)
at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:123)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85)
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58)
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:72)
at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:282)
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:261)
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:80)
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:172)
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:199)
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:774)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.RuntimeException: net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: C:\e2pd\audmob\web\ambiente\wildfly-9.0.2.Final\standalone\deployments\audmob.war\audmob\src\main\webapp\WEB-INF\reports\teste.jasper
at br.com.caelum.vraptor.jasperreports.exporter.DefaultExporter$Proxy$_$$_WeldClientProxy.to(Unknown Source)
at br.com.caelum.vraptor.jasperreports.download.ReportDownload.getContent(ReportDownload.java:52)
at br.com.caelum.vraptor.jasperreports.download.ReportDownload.write(ReportDownload.java:46)
at br.com.caelum.vraptor.observer.download.DownloadView.of(DownloadView.java:50)
at br.com.caelum.vraptor.observer.download.DownloadObserver.download(DownloadObserver.java:51)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:88)
at org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:78)
at org.jboss.weld.injection.MethodInvocationStrategy$DefaultMethodInvocationStrategy.invoke(MethodInvocationStrategy.java:109)
at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:306)
at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:284)
at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:262)
at org.jboss.weld.event.ObserverNotifier.notifySyncObservers(ObserverNotifier.java:271)
at org.jboss.weld.event.ObserverNotifier.notify(ObserverNotifier.java:260)
at org.jboss.weld.event.EventImpl.fire(EventImpl.java:89)
at br.com.caelum.vraptor.observer.ExecuteMethod$1.call(ExecuteMethod.java:87)
at br.com.caelum.vraptor.observer.ExecuteMethod$1.call(ExecuteMethod.java:72)
at br.com.caelum.vraptor.core.Try.run(Try.java:18)
at br.com.caelum.vraptor.observer.ExecuteMethod.execute(ExecuteMethod.java:72)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:88)
at org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:78)
at org.jboss.weld.injection.MethodInvocationStrategy$SimpleMethodInvocationStrategy.invoke(MethodInvocationStrategy.java:129)
at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:306)
at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:284)
at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:262)
at org.jboss.weld.event.ObserverNotifier.notifySyncObservers(ObserverNotifier.java:271)
at org.jboss.weld.event.ObserverNotifier.notify(ObserverNotifier.java:260)
at org.jboss.weld.event.EventImpl.fire(EventImpl.java:89)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:78)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:63)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:83)
at br.com.caelum.brutauth.interceptors.BrutauthMapInterceptor.intercept(BrutauthMapInterceptor.java:36)
at br.com.caelum.brutauth.interceptors.BrutauthMapInterceptor$Proxy$_$$_WeldClientProxy.intercept(Unknown Source)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler$1.call(ToInstantiateInterceptorHandler.java:71)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler$1.call(ToInstantiateInterceptorHandler.java:68)
at br.com.caelum.vraptor.core.Try.run(Try.java:18)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.executeSafely(ToInstantiateInterceptorHandler.java:68)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:61)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:83)
at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:98)
at br.com.caelum.vraptor.interceptor.FlashInterceptor$Proxy$_$$_WeldClientProxy.intercept(Unknown Source)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler$1.call(ToInstantiateInterceptorHandler.java:71)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler$1.call(ToInstantiateInterceptorHandler.java:68)
at br.com.caelum.vraptor.core.Try.run(Try.java:18)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.executeSafely(ToInstantiateInterceptorHandler.java:68)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:61)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:83)
at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:75)
at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor$Proxy$_$$_WeldClientProxy.intercept(Unknown Source)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler$1.call(ToInstantiateInterceptorHandler.java:71)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler$1.call(ToInstantiateInterceptorHandler.java:68)
at br.com.caelum.vraptor.core.Try.run(Try.java:18)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.executeSafely(ToInstantiateInterceptorHandler.java:68)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:61)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:83)
at br.com.caelum.vraptor.core.DefaultInterceptorStack$Proxy$_$$_WeldClientProxy.next(Unknown Source)
at br.com.caelum.vraptor.interceptor.DefaultSimpleInterceptorStack.next(DefaultSimpleInterceptorStack.java:49)
at br.com.caelum.vraptor.interceptor.DefaultSimpleInterceptorStack$Proxy$_$$_WeldClientProxy.next(Unknown Source)
at br.com.caelum.vraptor.jpa.JPATransactionInterceptor.intercept(JPATransactionInterceptor.java:67)
at br.com.caelum.vraptor.jpa.JPATransactionInterceptor$Proxy$_$$_WeldClientProxy.intercept(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.vidageek.mirror.provider.java.PureJavaMethodReflectionProvider.invoke(PureJavaMethodReflectionProvider.java:38)
at net.vidageek.mirror.invoke.MethodHandlerByMethod.withArgs(MethodHandlerByMethod.java:54)
at br.com.caelum.vraptor.core.DefaultReflectionProvider.invoke(DefaultReflectionProvider.java:42)
at br.com.caelum.vraptor.core.DefaultReflectionProvider$Proxy$_$$_WeldClientProxy.invoke(Unknown Source)
at br.com.caelum.vraptor.interceptor.StepInvoker.invokeMethod(StepInvoker.java:64)
... 60 more
Caused by: net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: C:\e2pd\audmob\web\ambiente\wildfly-9.0.2.Final\standalone\deployments\audmob.war\audmob\src\main\webapp\WEB-INF\reports\teste.jasper
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:114)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:103)
at net.sf.jasperreports.engine.util.JRLoader.loadObjectFromFile(JRLoader.java:94)
at br.com.caelum.vraptor.jasperreports.ReportLoader.loadFromDisk(ReportLoader.java:42)
at br.com.caelum.vraptor.jasperreports.ReportLoader.loadFromCache(ReportLoader.java:29)
at br.com.caelum.vraptor.jasperreports.ReportLoader.load(ReportLoader.java:20)
at br.com.caelum.vraptor.jasperreports.ReportLoader$Proxy$_$$_WeldClientProxy.load(Unknown Source)
at br.com.caelum.vraptor.jasperreports.exporter.DefaultExporter.fill(DefaultExporter.java:79)
at br.com.caelum.vraptor.jasperreports.exporter.DefaultExporter.fillAll(DefaultExporter.java:72)
... 136 more
Caused by: java.io.FileNotFoundException: C:\e2pd\audmob\web\ambiente\wildfly-9.0.2.Final\standalone\deployments\audmob.war\audmob\src\main\webapp\WEB-INF\reports\teste.jasper
... 146 more

Cleber Angelo

unread,
Sep 21, 2016, 11:44:45 AM9/21/16
to caelum-...@googlegroups.com
Certo. 
Talvez valha a pena tentar por o teste.jasper em outro diretório que não seja o de deploy da aplicação no servidor (se houver essa possibilidade), pode ser que funcione.

Att,
Cleber.

Pablo Souza

unread,
Sep 21, 2016, 11:46:42 AM9/21/16
to Caelum Vraptor
Exatamente. É isso que eu quero tentar fazer. Estou supondo que dessa forma o plugin não consiga escrever dentro do .war.

C:\e2pd\audmob\web\ambiente\wildfly-9.0.2.Final\standalone\deployments\audmob.war\audmob\src\main\webapp\WEB-INF\reports\teste.jasper

Pablo Souza

unread,
Sep 21, 2016, 9:05:28 PM9/21/16
to Caelum Vraptor

Pablo Souza

unread,
Sep 22, 2016, 8:04:19 PM9/22/16
to Caelum Vraptor
Queria uma dica de como passar o java.sql.Connection como parametro para o report. Como eu faria para pegar Connection de um EntityManager?

Carlos Spohr

unread,
Sep 22, 2016, 8:09:11 PM9/22/16
to caelum-...@googlegroups.com

Lembro de uma vez que fiz usando o método getDelegate senão me engano...não lembro se era na session do hibernate ou sobre a jpa.

Para os Jaspers, pq não tenta retornar eles como array de bytes direto? É meio feio mas já resolveria o seu problema.

Tinha esse problema quando trabalhei num erp RMI uma vez.

[]s

Pablo Souza

unread,
Sep 22, 2016, 8:33:51 PM9/22/16
to Caelum Vraptor
Carlos,

Eu sou leigo em Jasper. Ainda estou entendendo como as coisas funcionam e por isso não sei como implementar essa estratégia de usar o baty array diretamente. :)

Eu tentei usar o entityManager.getDelegate() mas não funcionou.

Não sei se é a melhor form, mas fiz assim:

final Report report = generateReport();
        
        Session session = (Session) em.unwrap(Session.class);
    session.doWork(new Work() {
@Override
public void execute(Connection arg0) throws SQLException {
report.addParameter("java.sql.Connection", arg0);
}
});

--
Você recebeu essa mensagem porque está inscrito no grupo "caelum-vraptor" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para caelum-vraptor+unsubscribe@googlegroups.com.
Para postar nesse grupo, envie um e-mail para caelum-vraptor@googlegroups.com.

Carlos Spohr

unread,
Sep 23, 2016, 7:22:06 AM9/23/16
to caelum-...@googlegroups.com

Vou dar uma olhada se acho alguma coisa coisa aqui pra passar pra ti. A principio era uma solução por fora do vraptor mesmo, no caso não como componente.


On Sep 22, 2016 9:33 PM, "Pablo Souza" <pvrs...@gmail.com> wrote:
Carlos,

Eu sou leigo em Jasper. Ainda estou entendendo como as coisas funcionam e por isso não sei como implementar essa estratégia de usar o baty array diretamente. :)

Eu tentei usar o entityManager.getDelegate() mas não funcionou.

Não sei se é a melhor form, mas fiz assim:

final Report report = generateReport();
        
        Session session = (Session) em.unwrap(Session.class);
    session.doWork(new Work() {
@Override
public void execute(Connection arg0) throws SQLException {
report.addParameter("java.sql.Connection", arg0);
}
});
2016-09-22 21:09 GMT-03:00 Carlos Spohr <carlos...@gmail.com>:

Lembro de uma vez que fiz usando o método getDelegate senão me engano...não lembro se era na session do hibernate ou sobre a jpa.

Para os Jaspers, pq não tenta retornar eles como array de bytes direto? É meio feio mas já resolveria o seu problema.

Tinha esse problema quando trabalhei num erp RMI uma vez.

[]s

--
Você recebeu essa mensagem porque está inscrito no grupo "caelum-vraptor" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para caelum-vraptor+unsubscribe@googlegroups.com.
Para postar nesse grupo, envie um e-mail para caelum-...@googlegroups.com.



--
Atenciosamente,

Pablo Souza
Twitter: @pvrsouza
Tel.: (71) 9983-7775

Carlos Spohr

unread,
Sep 23, 2016, 9:00:22 AM9/23/16
to caelum-...@googlegroups.com
E aí Pablo,

Você tendo o jasper processado como um pdf em byte array pode te ajudar...basicamente você precisa apenas saber em qual pasta estão os seus '.jasper' para que o JR faça o resto...a saída dele você pode pegar direto em byte array de pdf e daí no vraptor dispara o download pela interface Download :D

Atenciosamente,
Carlos Alberto Junior Spohr Poletto

Pablo Souza

unread,
Sep 23, 2016, 9:32:31 AM9/23/16
to Caelum Vraptor
Carlos,

Bacana a abordagem. Gostei. Muito obrigado!

Para postar nesse grupo, envie um e-mail para caelum-vraptor@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages