Jump to content
We've recently updated our Privacy Statement, available here ×

Scriptlet Intermittent NoSuchMethodError


djsiders

Recommended Posts

I am seeing an intermittent issue on our JasperServer, mainly from automated (scheduled) reports.  We often get emails with an error notification attached showing a NoSuchMethodError on our Scriptlet class.  When we go to the UI and re-run the exact report with same params, it runs fine.  Also other reports of the same type run just fine.  I have completey shutdown our Tomcat instance and deleted all deployed files, then re-starte/re-deployed the JasperServer war file just to make sure there were no strange caching issues, etc. with Tomcat.  This has also happened with different method names, not always the same one.

Tomcat 5.5

Jasper Server 3.0

Caused by: java.lang.NoSuchMethodError: package.name.ScriptletClass.methodName(Ljava/lang/String;)Ljava/lang/String;

Any ideas would be appreciated, thanks.

 

 

Link to comment
Share on other sites

  • Replies 4
  • Created
  • Last Reply

Top Posters In This Topic

Still no luck finding this problem.  Not sure if it's JasperServer, Swing or what.  Adding Stack Trace from Tomcat logs

11:53:17,308 ERROR JSErrorPage_jsp,http-8083-Processor24:329 -
net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression :
 Source text : $P{REPORT_SCRIPTLET}.getOffsetMonthDate($P{RUN_DATE_TIME}, -2)
 at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:197)
 at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:537)
 at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:505)
 at net.sf.jasperreports.engine.fill.JRFillDataset.setFillParameterValues(JRFillDataset.java:620)
 at net.sf.jasperreports.engine.fill.JRFillDataset.setParameterValues(JRFillDataset.java:577)
 at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1195)
 at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:833)
 at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:123)
 at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:420)
 at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServiceImpl.java:638)
 at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServiceImpl.java:333)
 at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.executeReport(EngineServiceImpl.java:765)
 at com.jaspersoft.jasperserver.api.engine.jasperreports.domain.impl.ReportUnitRequest.execute(ReportUnitRequest.java:60)
 at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.execute(EngineServiceImpl.java:265)
 at com.jaspersoft.jasperserver.war.action.ViewReportAction.executeReport(ViewReportAction.java:329)
 at com.jaspersoft.jasperserver.war.action.ViewReportAction.verifyData(ViewReportAction.java:222)
 at sun.reflect.GeneratedMethodAccessor1689.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at org.springframework.webflow.util.DispatchMethodInvoker.invoke(DispatchMethodInvoker.java:103)
 at org.springframework.webflow.action.MultiAction.doExecute(MultiAction.java:136)
 at org.springframework.webflow.action.AbstractAction.execute(AbstractAction.java:203)
 at org.springframework.webflow.engine.AnnotatedAction.execute(AnnotatedAction.java:142)
 at org.springframework.webflow.engine.ActionExecutor.execute(ActionExecutor.java:61)
 at org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:180)
 at org.springframework.webflow.engine.State.enter(State.java:200)
 at org.springframework.webflow.engine.Transition.execute(Transition.java:229)
 at org.springframework.webflow.engine.TransitionableState.onEvent(TransitionableState.java:112)
 at org.springframework.webflow.engine.Flow.onEvent(Flow.java:572)
 at org.springframework.webflow.engine.impl.RequestControlContextImpl.signalEvent(RequestControlContextImpl.java:207)
 at org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:185)
 at org.springframework.webflow.engine.State.enter(State.java:200)
 at org.springframework.webflow.engine.Flow.start(Flow.java:557)
 at org.springframework.webflow.engine.impl.RequestControlContextImpl.start(RequestControlContextImpl.java:195)
 at org.springframework.webflow.engine.impl.FlowExecutionImpl.start(FlowExecutionImpl.java:189)
 at org.springframework.webflow.executor.FlowExecutorImpl.launch(FlowExecutorImpl.java:206)
 at sun.reflect.GeneratedMethodAccessor1534.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:281)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:187)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:154)
 at org.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:66)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:210)
 at $Proxy43.launch(Unknown Source)
 at org.springframework.webflow.executor.support.FlowRequestHandler.handleFlowRequest(FlowRequestHandler.java:131)
 at org.springframework.webflow.executor.mvc.FlowController.handleRequestInternal(FlowController.java:170)
 at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
 at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:45)
 at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:820)
 at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:755)
 at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396)
 at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:350)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
 at com.jaspersoft.jasperserver.war.common.UploadMultipartFilter.doFilter(UploadMultipartFilter.java:86)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
 at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
 at org.acegisecurity.ui.switchuser.SwitchUserProcessingFilter.doFilter(SwitchUserProcessingFilter.java:335)
 at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
 at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
 at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
 at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
 at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
 at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
 at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
 at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
 at com.jaspersoft.jasperserver.api.metadata.user.service.impl.MetadataAuthenticationProcessingFilter.doFilter(MetadataAuthenticationProcessingFilter.java:141)
 at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
 at com.jaspersoft.jasperserver.war.util.RequestParameterAuthenticationFilter.doFilter(RequestParameterAuthenticationFilter.java:97)
 at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
 at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:181)
 at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
 at com.jaspersoft.jasperserver.war.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:165)
 at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
 at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217)
 at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
 at com.jaspersoft.jasperserver.war.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:165)
 at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
 at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:191)
 at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
 at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
 at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:90)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
 at com.jaspersoft.jasperserver.war.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:70)
 at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
 at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
 at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
 at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
 at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoSuchMethodError: jasp.scriplet.JaspScriptlet.getOffsetMonthDate(Ljava/util/Date;I)Ljava/util/Date;
 at MonthlyJobCountSummary_1272647740425_266525.evaluate(MonthlyJobCountSummary_1272647740425_266525:171)
 at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:186)
 ... 104 more

Link to comment
Share on other sites

Still no answers, but have determined this seems to only occur during scheduled reports.  I setup 2 identical reports to run on five minute intervals.  They often run fine, but occasionally I get the no method exception.  The Exception has occurred on both reports and both reports have run fine as well.  After getting the exception, the reports later run fine as well.

Link to comment
Share on other sites

I setup a test schedule reports as noted in my last reply and was able to itermittently see the problem.  I took the report item out that was calling the particular method that it said it could not find.  The problem just moved to the next element in the report that was calling a scriplet method.  So to me, it looks like the error I am getting for a method not found has nothing to do with the particular method, it just happened to be the first call to the scriptlet.

Link to comment
Share on other sites

  • 1 month later...

Still no luck on this, but noticed one other clue to the issue.  We use the Scriptlet to calculate some report params, like start and ending dates, and also use the Scriptlet to fill fields directly on the report.  When calculating a parameter value, the default for the parameter is a Scriptlet function call that results in the default value.  When filling the field on the report, the operation is the same, just the output field box is getting it's value from a Scriptlet function call rather than a datasource field.

What I have noticed is that the parameter calls on the report always work, however the field fill intermittently fail.  As noted in earlier posts, the field fill finds the Scriptlet method fine when run later manually, and often when run automatically.  This condition seems to happen when:

1) The report is run as a scheduled report

2) The report is fill a field with data from a Scriptlet function call

3) Error is not Scriptlet method specific, just the first method encounted in the report fill

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...