OC4J 10.1.3 + Report Engine API [message #642834] |
Thu, 02 December 2010 21:07 |
Eric W Messages: 29 Registered: November 2009 |
Junior Member |
|
|
Howdy,
I am currently using the BIRT 2.6.1 report engine api in my java web app. When I deploy to an OC4J(10.1.3) app server the PDF's will not render. However, when I deploy the same exact war to glassfish it works perfect.
I have my code listed below. Again this works perfect on Glassfish but not on OC4J.
The error I get is in Adobe Reader
"Adobe Reader could not open 'filename" because it is either not a supported file type or because the file has been damaged(for example, it was sent as an email attachment and wasn't correctly decoded).
The interesting thing is the file that is downloaded is 0 Bytes.
Again, the pdf renders perfectly in glassfish but oc4j has troubles.
Also, I cant see any errors in any of my logs...
Anyone here know of a solution or if I am missing a jar that is in Glassfish natively but not in oc4j?
ServletContext sc = request.getSession().getServletContext();
engine = BirtEngine.getBirtEngine(sc);
L_Form form = getLForm(formId);
IReportRunnable design;
design = engine.openReportDesign(sc.getRealPath("/forms")+"/"+form.getBirtDesign());
IRunAndRenderTask task = engine.createRunAndRenderTask(design);
task.getAppContext().put("BIRT_VIEWER_HTTPSERVLET_REQUEST", request);
task.setParameterValue("paramCaseId", caseid);
task.setParameterValue("paramObjectId", caseItemId);
PDFRenderOption options = new PDFRenderOption();
options.setOutputFormat(PDFRenderOption.OUTPUT_FORMAT_PDF);
//response.setHeader("Content-Disposition", "inline; filename=" + form.getJavaClass() + ".pdf");
response.setHeader("Content-Disposition", "attachment; filename=" + form.getJavaClass() + ".pdf");
response.setHeader("Content-Type", "application/pdf");
options.setOutputStream(response.getOutputStream());
task.setRenderOption(options);
task.run();
task.close();
|
|
|
Re: OC4J 10.1.3 + Report Engine API [message #642974 is a reply to message #642834] |
Fri, 03 December 2010 14:55 |
|
What log level do you have set in the engine?
Also can you logout the path you are using to use to open the design?
Just curious if sc.getRealPath is working on OC4J.
I assume you have the issue with all reports not just one?
Jason
On 12/2/2010 4:08 PM, NerdyJoe wrote:
> Howdy,
>
> I am currently using the BIRT 2.6.1 report engine api in my java web
> app. When I deploy to an OC4J(10.1.3) app server the PDF's will not
> render. However, when I deploy the same exact war to glassfish it works
> perfect.
>
> I have my code listed below. Again this works perfect on Glassfish but
> not on OC4J.
>
> The error I get is in Adobe Reader
> "Adobe Reader could not open 'filename" because it is either not a
> supported file type or because the file has been damaged(for example, it
> was sent as an email attachment and wasn't correctly decoded).
>
> The interesting thing is the file that is downloaded is 0 Bytes.
>
> Again, the pdf renders perfectly in glassfish but oc4j has troubles.
>
> Also, I cant see any errors in any of my logs... :(
>
> Anyone here know of a solution or if I am missing a jar that is in
> Glassfish natively but not in oc4j?
>
>
> ServletContext sc = request.getSession().getServletContext();
> engine = BirtEngine.getBirtEngine(sc);
> L_Form form = getLForm(formId);
> IReportRunnable design;
> design =
> engine.openReportDesign(sc.getRealPath("/forms")+"/"+form.getBirtDesign());
>
> IRunAndRenderTask task = engine.createRunAndRenderTask(design);
> task.getAppContext().put("BIRT_VIEWER_HTTPSERVLET_REQUEST", request);
> task.setParameterValue("paramCaseId", caseid);
> task.setParameterValue("paramObjectId", caseItemId);
> PDFRenderOption options = new PDFRenderOption();
> options.setOutputFormat(PDFRenderOption.OUTPUT_FORMAT_PDF);
>
> //response.setHeader("Content-Disposition", "inline; filename=" +
> form.getJavaClass() + ".pdf");
> response.setHeader("Content-Disposition", "attachment; filename=" +
> form.getJavaClass() + ".pdf");
> response.setHeader("Content-Type", "application/pdf");
> options.setOutputStream(response.getOutputStream());
> task.setRenderOption(options);
> task.run();
> task.close();
>
|
|
|
|
Re: OC4J 10.1.3 + Report Engine API [message #643041 is a reply to message #643020] |
Fri, 03 December 2010 17:29 |
|
We are working a new version now. Hopefully it will be out soon.
Can you see if js.jar is in the classpath somewhere? As a guess, it
looks like there may be a conflict with the one shipped with BIRT.
Jason
On 12/3/2010 11:56 AM, NerdyJoe wrote:
> Hey, thanks alot Jason for looking at this! You thinking about writing
> another advanced book on BIRT (newest version?!?)
>
>
> Yes, sc.getRealPath is working correctly. I just did a
> system.out.println of it and it works on both instances of OC4J, have a
> local on windows and one on our dev server (solaris) The output is the
> exact path to the forms folder where the .rptdesign is located
>
> I deployed the same war to Oracle WebLogic as we are migratting to is
> shortly and I get the same problem but with more output
>
> Wierd, since it works perfectly on Glassfish, Problem is my server
> admins wont migrate to the fish, only weblogic : \
>
> java.lang.reflect.InvocationTargetException
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce
> ssorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
> thodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.apache.struts.actions.DispatchAction.dispatchMethod(Disp
> atchAction.java:266)
> at org.apache.struts.actions.DispatchAction.execute(DispatchAct
> ion.java:167)
> at com.resqsoft.struts.CommonDispatchAction.execute(CommonDispa
> tchAction.java:199)
> at com.resqsoft.struts.BaseDispatchAction.execute(BaseDispatchA
> ction.java:125)
> at org.apache.struts.chain.commands.servlet.ExecuteAction.execu
> te(ExecuteAction.java:53)
> at org.apache.struts.chain.commands.AbstractExecuteAction.execu
> te(AbstractExecuteAction.java:64)
> at org.apache.struts.chain.commands.ActionCommandBase.execute(A
> ctionCommandBase.java:48)
> at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.ja va:190)
> at org.apache.commons.chain.generic.LookupCommand.execute(Looku
> pCommand.java:304)
> at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.ja va:190)
> at org.apache.struts.chain.ComposableRequestProcessor.process(C
> omposableRequestProcessor.java:280)
> at org.apache.struts.action.ActionServlet.process(ActionServlet .java:1858)
> at org.apache.struts.action.ActionServlet.doPost(ActionServlet. java:459)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
> at com.resqsoft.struts.ActionServlet.service(ActionServlet.java :92)
> at mil.af.jag.amjams.ApplicationServlet.service(ApplicationServ
> let.java:68)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceA
> ction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(S
> tubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStu
> bImpl.java:300)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.jav a:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterCha
> inImpl.java:56)
> at org.springframework.orm.hibernate3.support.OpenSessionInView
> Filter.doFilterInternal(OpenSessionInViewFilter.java:198)
> at org.springframework.web.filter.OncePerRequestFilter.doFilter
> (OncePerRequestFilter.java:75)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterCha
> inImpl.java:56)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.d
> oFilter(FilterChainProxy.java:264)
> at mil.af.jag.amjams.AmjamsFilter.doFilter(AmjamsFilter.java:12 3)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.d
> oFilter(FilterChainProxy.java:274)
> at org.acegisecurity.intercept.web.FilterSecurityInterceptor.in
> voke(FilterSecurityInterceptor.java:107)
> at org.acegisecurity.intercept.web.FilterSecurityInterceptor.do
> Filter(FilterSecurityInterceptor.java:72)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.d
> oFilter(FilterChainProxy.java:274)
> at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(Exc
> eptionTranslationFilter.java:110)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.d
> oFilter(FilterChainProxy.java:274)
> at org.acegisecurity.providers.anonymous.AnonymousProcessingFil
> ter.doFilter(AnonymousProcessingFilter.java:125)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.d
> oFilter(FilterChainProxy.java:274)
> at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.d
> oFilter(RememberMeProcessingFilter.java:142)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.d
> oFilter(FilterChainProxy.java:274)
> at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestF
> ilter.doFilter(SecurityContextHolderAwareRequestFilter.java: 81)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.d
> oFilter(FilterChainProxy.java:274)
> at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilte
> r(BasicProcessingFilter.java:178)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.d
> oFilter(FilterChainProxy.java:274)
> at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilt
> er.java:106)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.d
> oFilter(FilterChainProxy.java:274)
> at org.acegisecurity.context.HttpSessionContextIntegrationFilte
> r.doFilter(HttpSessionContextIntegrationFilter.java:229)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.d
> oFilter(FilterChainProxy.java:274)
> at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChain
> Proxy.java:148)
> at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBe
> anProxy.java:98)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterCha
> inImpl.java:56)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvoca
> tionAction.doIt(WebAppServletContext.java:3684)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvoca
> tionAction.run(WebAppServletContext.java:3650)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Aut
> henticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(SecurityMana
> ger.java:121)
> at weblogic.servlet.internal.WebAppServletContext.securedExecut
> e(WebAppServletContext.java:2268)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAp
> pServletContext.java:2174)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequ
> estImpl.java:1446)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> Caused by: java.lang.NoSuchMethodError:
> org.mozilla.javascript.Context.enter(Lorg/mozilla/javascript
> /Context;Lorg/mozilla/javascript/ContextFactory;)Lorg/mozill
> a/javascript/Context;
> at org.mozilla.javascript.ContextFactory.enterContext(ContextFa
> ctory.java:588)
> at org.mozilla.javascript.ContextFactory.enterContext(ContextFa
> ctory.java:551)
> at org.eclipse.birt.report.model.simpleapi.ReportDesign.initFun
> ctions(ReportDesign.java:368)
> at
> org.eclipse.birt.report.model.simpleapi.ReportDesign.<init>(ReportDesign.java:82)
>
> at org.eclipse.birt.report.model.simpleapi.ElementUtil.getEleme
> nt(ElementUtil.java:59)
> at org.eclipse.birt.report.model.api.impl.SimpleElementFactory.
> getElement(SimpleElementFactory.java:279)
> at org.eclipse.birt.report.engine.script.internal.ReportScriptE
> xecutor.handleBeforeFactory(ReportScriptExecutor.java:62)
> at org.eclipse.birt.report.engine.api.impl.EngineTask.startFact
> ory(EngineTask.java:1760)
> at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doR
> un(RunAndRenderTask.java:100)
> at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run
> (RunAndRenderTask.java:77)
> at mil.af.jag.amjams.services.BirtFormService.produceForm(BirtF
> ormService.java:88)
> at mil.af.jag.amjams.ui.CaseBaseDispatchAction.saveAndDisplayFo
> rm(CaseBaseDispatchAction.java:421)
> at mil.af.jag.amjams.ui.CaseBaseDispatchAction.doSaveAndDisplay
> Form(CaseBaseDispatchAction.java:451)
> ... 61 more
> 10:46:52,509 ERROR LoggingExceptionHandler:85 -
> javax.servlet.ServletException: java.lang.NoSuchMethodError:
> org.mozilla.javascript.Context.enter(Lorg/mozilla/javascript
> /Context;Lorg/mozilla/javascript/ContextFactory;)Lorg/mozill
> a/javascript/Context;
> at org.apache.struts.actions.DispatchAction.dispatchMethod(Disp
> atchAction.java:292)
> at org.apache.struts.actions.DispatchAction.execute(DispatchAct
> ion.java:167)
> at com.resqsoft.struts.CommonDispatchAction.execute(CommonDispa
> tchAction.java:199)
> at com.resqsoft.struts.BaseDispatchAction.execute(BaseDispatchA
> ction.java:125)
> at org.apache.struts.chain.commands.servlet.ExecuteAction.execu
> te(ExecuteAction.java:53)
> at org.apache.struts.chain.commands.AbstractExecuteAction.execu
> te(AbstractExecuteAction.java:64)
> at org.apache.struts.chain.commands.ActionCommandBase.execute(A
> ctionCommandBase.java:48)
> at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.ja va:190)
> at org.apache.commons.chain.generic.LookupCommand.execute(Looku
> pCommand.java:304)
> at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.ja va:190)
> at org.apache.struts.chain.ComposableRequestProcessor.process(C
> omposableRequestProcessor.java:280)
> at org.apache.struts.action.ActionServlet.process(ActionServlet .java:1858)
> at org.apache.struts.action.ActionServlet.doPost(ActionServlet. java:459)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
> at com.resqsoft.struts.ActionServlet.service(ActionServlet.java :92)
> at mil.af.jag.amjams.ApplicationServlet.service(ApplicationServ
> let.java:68)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceA
> ction.run(StubSecurityHelper.java:227)
> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(S
> tubSecurityHelper.java:125)
> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStu
> bImpl.java:300)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.jav a:26)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterCha
> inImpl.java:56)
> at org.springframework.orm.hibernate3.support.OpenSessionInView
> Filter.doFilterInternal(OpenSessionInViewFilter.java:198)
> at org.springframework.web.filter.OncePerRequestFilter.doFilter
> (OncePerRequestFilter.java:75)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterCha
> inImpl.java:56)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.d
> oFilter(FilterChainProxy.java:264)
> at mil.af.jag.amjams.AmjamsFilter.doFilter(AmjamsFilter.java:12 3)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.d
> oFilter(FilterChainProxy.java:274)
> at org.acegisecurity.intercept.web.FilterSecurityInterceptor.in
> voke(FilterSecurityInterceptor.java:107)
> at org.acegisecurity.intercept.web.FilterSecurityInterceptor.do
> Filter(FilterSecurityInterceptor.java:72)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.d
> oFilter(FilterChainProxy.java:274)
> at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(Exc
> eptionTranslationFilter.java:110)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.d
> oFilter(FilterChainProxy.java:274)
> at org.acegisecurity.providers.anonymous.AnonymousProcessingFil
> ter.doFilter(AnonymousProcessingFilter.java:125)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.d
> oFilter(FilterChainProxy.java:274)
> at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.d
> oFilter(RememberMeProcessingFilter.java:142)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.d
> oFilter(FilterChainProxy.java:274)
> at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestF
> ilter.doFilter(SecurityContextHolderAwareRequestFilter.java: 81)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.d
> oFilter(FilterChainProxy.java:274)
> at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilte
> r(BasicProcessingFilter.java:178)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.d
> oFilter(FilterChainProxy.java:274)
> at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilt
> er.java:106)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.d
> oFilter(FilterChainProxy.java:274)
> at org.acegisecurity.context.HttpSessionContextIntegrationFilte
> r.doFilter(HttpSessionContextIntegrationFilter.java:229)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.d
> oFilter(FilterChainProxy.java:274)
> at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChain
> Proxy.java:148)
> at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBe
> anProxy.java:98)
> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterCha
> inImpl.java:56)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvoca
> tionAction.doIt(WebAppServletContext.java:3684)
> at weblogic.servlet.internal.WebAppServletContext$ServletInvoca
> tionAction.run(WebAppServletContext.java:3650)
> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Aut
> henticatedSubject.java:321)
> at weblogic.security.service.SecurityManager.runAs(SecurityMana
> ger.java:121)
> at weblogic.servlet.internal.WebAppServletContext.securedExecut
> e(WebAppServletContext.java:2268)
> at weblogic.servlet.internal.WebAppServletContext.execute(WebAp
> pServletContext.java:2174)
> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequ
> estImpl.java:1446)
> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> Caused by: java.lang.NoSuchMethodError:
> org.mozilla.javascript.Context.enter(Lorg/mozilla/javascript
> /Context;Lorg/mozilla/javascript/ContextFactory;)Lorg/mozill
> a/javascript/Context;
> at org.mozilla.javascript.ContextFactory.enterContext(ContextFa
> ctory.java:588)
> at org.mozilla.javascript.ContextFactory.enterContext(ContextFa
> ctory.java:551)
> at org.eclipse.birt.report.model.simpleapi.ReportDesign.initFun
> ctions(ReportDesign.java:368)
> at
> org.eclipse.birt.report.model.simpleapi.ReportDesign.<init>(ReportDesign.java:82)
>
> at org.eclipse.birt.report.model.simpleapi.ElementUtil.getEleme
> nt(ElementUtil.java:59)
> at org.eclipse.birt.report.model.api.impl.SimpleElementFactory.
> getElement(SimpleElementFactory.java:279)
> at org.eclipse.birt.report.engine.script.internal.ReportScriptE
> xecutor.handleBeforeFactory(ReportScriptExecutor.java:62)
> at org.eclipse.birt.report.engine.api.impl.EngineTask.startFact
> ory(EngineTask.java:1760)
> at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doR
> un(RunAndRenderTask.java:100)
> at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run
> (RunAndRenderTask.java:77)
> at mil.af.jag.amjams.services.BirtFormService.produceForm(BirtF
> ormService.java:88)
> at mil.af.jag.amjams.ui.CaseBaseDispatchAction.saveAndDisplayFo
> rm(CaseBaseDispatchAction.java:421)
> at mil.af.jag.amjams.ui.CaseBaseDispatchAction.doSaveAndDisplay
> Form(CaseBaseDispatchAction.java:451)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce
> ssorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
> thodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.apache.struts.actions.DispatchAction.dispatchMethod(Disp
> atchAction.java:266)
> ... 56 more
|
|
|
|
Powered by
FUDForum. Page generated in 0.02654 seconds