I’ve created a ParameterSetReplacementProviderHook that makes use of the following call to retrieve the ReportServer URL:
GLOBALS.getRsService(ReportServerService.class).getServerInfo().getBaseURL();
This works if I run a report manually, but if a report is a scheduled report, when it tries to run the error below is thrown. Is this expected behaviour, and if so, can you suggest an alternate way to retrieve the ReportServer URL?
Apr 29, 2015 11:17:10 AM net.datenwerke.rs.core.service.reportmanager.ReportExecutorServiceImpl execute
WARNING: com.google.inject.ProvisionException: Guice provision errors:
- Error in custom provider, com.google.inject.OutOfScopeException: Cannot access scoped object. Either we are not currently inside an HTTP Servlet request, or you may have forgotten to apply com.google.inject.servlet.GuiceFilter as a servlet filter for this request.
at net.datenwerke.rs.core.service.reportserver.ServerInfoContainer.class(ServerInfoContainer.java:17)
while locating net.datenwerke.rs.core.service.reportserver.ServerInfoContainer
1 error
net.datenwerke.rs.core.service.reportmanager.exceptions.ReportExecutorRuntimeException: com.google.inject.ProvisionException: Guice provision errors:
- Error in custom provider, com.google.inject.OutOfScopeException: Cannot access scoped object. Either we are not currently inside an HTTP Servlet request, or you may have forgotten to apply com.google.inject.servlet.GuiceFilter as a servlet filter for this request.
at net.datenwerke.rs.core.service.reportserver.ServerInfoContainer.class(ServerInfoContainer.java:17)
while locating net.datenwerke.rs.core.service.reportserver.ServerInfoContainer
1 error
at net.datenwerke.rs.birt.service.reportengine.BirtReportEngine.executeReport(BirtReportEngine.java:83)
at net.datenwerke.rs.birt.service.reportengine.BirtReportEngine.doExecute(BirtReportEngine.java:70)
at net.datenwerke.rs.core.service.reportmanager.engine.ReportEngine.execute(ReportEngine.java:127)
at net.datenwerke.rs.core.service.reportmanager.ReportExecutorServiceImpl.execute(ReportExecutorServiceImpl.java:186)
at net.datenwerke.rs.core.service.reportmanager.ReportExecutorServiceImpl.execute(ReportExecutorServiceImpl.java:119)
at net.datenwerke.rs.core.service.reportmanager.ReportExecutorServiceImpl.execute(ReportExecutorServiceImpl.java:106)
at net.datenwerke.rs.core.service.reportmanager.ReportExecutorServiceImpl.execute(ReportExecutorServiceImpl.java:101)
at net.datenwerke.rs.scheduler.service.scheduler.jobs.report.ReportExecuteJob.doExecute(ReportExecuteJob.java:121)
at net.datenwerke.scheduler.service.scheduler.entities.AbstractJob.execute(AbstractJob.java:185)
at net.datenwerke.scheduler.service.scheduler.tasks.SchedulerTask.executeJob(SchedulerTask.java:527)
at net.datenwerke.scheduler.service.scheduler.tasks.SchedulerTask.safeCall(SchedulerTask.java:206)
at net.datenwerke.scheduler.service.scheduler.tasks.SchedulerTask.call(SchedulerTask.java:101)
at net.datenwerke.scheduler.service.scheduler.tasks.SchedulerTask.call(SchedulerTask.java:1)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.google.inject.ProvisionException: Guice provision errors:
- Error in custom provider, com.google.inject.OutOfScopeException: Cannot access scoped object. Either we are not currently inside an HTTP Servlet request, or you may have forgotten to apply com.google.inject.servlet.GuiceFilter as a servlet filter for this request.
at net.datenwerke.rs.core.service.reportserver.ServerInfoContainer.class(ServerInfoContainer.java:17)
while locating net.datenwerke.rs.core.service.reportserver.ServerInfoContainer
1 error
at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:987)
at net.datenwerke.rs.core.service.reportserver.ReportServerServiceImpl.getServerInfo(ReportServerServiceImpl.java:41)
at net.datenwerke.rs.core.service.reportserver.ReportServerService$getServerInfo.call(Unknown Source)
at Script72$1$2.provideReplacements(Script72.groovy:52)
at net.datenwerke.rs.core.service.reportmanager.parameters.ParameterSet.getParameterMap(ParameterSet.java:101)
at net.datenwerke.rs.core.service.reportmanager.parameters.ParameterSet.getParameterMapSimple(ParameterSet.java:119)
at net.datenwerke.rs.birt.service.reportengine.sandbox.BirtEngineEnvironment.call(BirtEngineEnvironment.java:92)
at net.datenwerke.rs.birt.service.reportengine.BirtReportEngine.executeReport(BirtReportEngine.java:81)
… 16 more
Caused by: com.google.inject.OutOfScopeException: Cannot access scoped object. Either we are not currently inside an HTTP Servlet request, or you may have forgotten to apply com.google.inject.servlet.GuiceFilter as a servlet filter for this request.
at com.google.inject.servlet.GuiceFilter.getContext(GuiceFilter.java:135)
at com.google.inject.servlet.GuiceFilter.getRequest(GuiceFilter.java:121)
at com.google.inject.servlet.ServletScopes$2$1.get(ServletScopes.java:114)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974)
… 23 more