Security Exception [message #1014604] |
Tue, 26 February 2013 06:22 |
SenthilKumar Rajendran Messages: 3 Registered: February 2013 |
Junior Member |
|
|
Hi, I'm new to BIRT,
I'm trying to generate the report and populate it in a jsp through servlets using struts framework.
I'm using the "birt-runtime-2_6_2".
I got the exception " org.eclipse.birt.report.engine.api.EngineException: Can't create data engine.
at org.eclipse.birt.report.engine.executor.ExecutionContext.openDataEngine(ExecutionContext.java:874)
Caused by: java.lang.SecurityException: class "org.mozilla.javascript.ContextFactory"'s signer information does not match signer information of other classes in the same package "
while I try to call the task.run();
Trace:
*****
org.eclipse.birt.report.engine.api.EngineException: Can't create data engine.
at org.eclipse.birt.report.engine.executor.ExecutionContext.openDataEngine(ExecutionContext.java:874)
at org.eclipse.birt.report.engine.executor.ExecutionContext.getDataEngine(ExecutionContext.java:886)
at org.eclipse.birt.report.engine.executor.ReportExecutor.execute(ReportExecutor.java:122)
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportExecutor.execute(WrappedReportExecutor.java:60)
at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplciateReportExecutor.execute(SuppressDuplciateReportExecutor.java:42)
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportExecutor.execute(WrappedReportExecutor.java:60)
at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportExecutor.execute(LocalizedReportExecutor.java:61)
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:178)
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)
at com.albridge.dashboard.web.action.report.BirtReportGeneratorAction.renderReport(BirtReportGeneratorAction.java:192)
at com.albridge.dashboard.web.action.report.BirtReportGeneratorAction.generateReport(BirtReportGeneratorAction.java:126)
at com.albridge.dashboard.web.action.report.BirtReportGeneratorAction.execute(BirtReportGeneratorAction.java:101)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3214)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1983)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1890)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1344)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
Caused by: java.lang.SecurityException: class "org.mozilla.javascript.ContextFactory"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:775)
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:487)
at java.lang.ClassLoader.defineClass(ClassLoader.java:614)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.eclipse.birt.core.framework.osgi.OSGILauncher$ChildFirstURLClassLoader.loadClass(OSGILauncher.java:688)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.eclipse.osgi.internal.loader.SystemBundleLoader.findLocalClass(SystemBundleLoader.java:117)
at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:33)
at org.eclipse.osgi.internal.loader.MultiSourcePackage.loadClass(MultiSourcePackage.java:31)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:466)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at org.eclipse.birt.report.model.simpleapi.ReportDesign.initFunctions(ReportDesign.java:368)
at org.eclipse.birt.report.model.simpleapi.ReportDesign.<init>(ReportDesign.java:82)
at org.eclipse.birt.report.model.simpleapi.ElementUtil.getElement(ElementUtil.java:59)
at org.eclipse.birt.report.model.api.impl.SimpleElementFactory.getElement(SimpleElementFactory.java:279)
at org.eclipse.birt.report.engine.executor.ExecutionContext.registerDesign(ExecutionContext.java:1345)
at org.eclipse.birt.report.engine.executor.ExecutionContext.initializeScriptContext(ExecutionContext.java:375)
at org.eclipse.birt.report.engine.executor.ExecutionContext.getScriptContext(ExecutionContext.java:1088)
at org.eclipse.birt.report.engine.adapter.ModelDteApiAdapter.<init>(ModelDteApiAdapter.java:177)
at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.<init>(AbstractDataEngine.java:107)
at org.eclipse.birt.report.engine.data.dte.DteDataEngine.<init>(DteDataEngine.java:85)
at org.eclipse.birt.report.engine.data.DataEngineFactory.createDataEngine(DataEngineFactory.java:100)
at org.eclipse.birt.report.engine.executor.ExecutionContext.openDataEngine(ExecutionContext.java:869)
... 29 more
Sample Code:
***********
try {
final String reportName = req.getParameter("ReportName");
Thread.currentThread().setContextClassLoader(originalClassLoader);
// Birt is already up and running.
// Check if the classloader is different from the one in use.
if (originalClassLoader != null && !originalClassLoader.equals(Platform.getContextClassLoader())) {
// The given classloader is different from the one in use.
LOGGER.info("Updating class loader for the OSGi platform.");
Platform.setContextClassLoader(originalClassLoader);
birtReportEngine.getConfig().getAppContext().put(EngineConstants.APPCONTEXT_CLASSLOADER_KEY, originalClassLoader);
} else {
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.warning("Keep using previous class loader for the OSGi platform.");
}
}
// Open report design
IReportRunnable design = birtReportEngine.openReportDesign( sc.getResource("/Reports" +"/"+reportName).getPath() );
// create task to run and render report
final IRunAndRenderTask task = birtReportEngine.createRunAndRenderTask(design);
task.getAppContext().put(EngineConstants.APPCONTEXT_CLASSLOADER_KEY, originalClassLoader);
// task.getAppContext().put("BIRT_VIEWER_HTTPSERVLET_REQUEST", req);
HTMLRenderContext renderContext = new HTMLRenderContext();
//setup image directory
renderContext.setBaseImageURL(req.getContextPath()+"/images");
renderContext.setBaseURL("http://" + req.getRemoteAddr() + ":" + req.getServerPort());
renderContext.setImageDirectory(sc.getResource("/images").getPath());
HashMap<String, HTMLRenderContext> contextMap = new HashMap<String, HTMLRenderContext>();
contextMap.put( EngineConstants.APPCONTEXT_HTML_RENDER_CONTEXT, renderContext );
// Set parameter values and validate
task.setParameterValue("stackId", stackId);
task.setParameterValue("startDate", startDate);
task.setParameterValue("limit", limit);
task.setAppContext( contextMap );
task.validateParameters();
// Build the output options and set the response content type.
IRenderOption options = buildOptions(req, resp, sc);
task.setRenderOption(options);
// run report
task.run();
task.close();
} catch (EngineException e) {
e.printStackTrace();
LOGGER.severe(e.getMessage());
throw new ServletException(e);
} catch (IOException e) {
e.printStackTrace();
LOGGER.severe(e.getMessage());
throw new ServletException(e);
}
Additional Input:
****************
I have specified the lib files in my class path which is located in the "birt-runtime-2_6_2\ReportEngine\lib"
Please help me to fix this issue.
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.03428 seconds