Integration Birt (Webviewer) in RCP

ram6

Grünschnabel
Hallo Community,

Ich bin dabei Birt in einer RCP Application zu integrieren.
Ich möchte gerne Tabellen dynamisch generieren in dem ich Daten aus Java Objects hole.
Ich habe dieses Tutorial gefolgt : http://www.vogella.de/articles/EclipseBIRT/article.html
in eclipse kann ich das Ergebniss aus der Scrtipted Dataset problemlos sehen und in verschiedenen Formaten exportieren.
Wenn ich versuche den Webviwer in meine RCP zu starten mit dem selben ".rptdesign" File wie im Workspace, bekomme ich eine Birt Exception.
Ich Starte den Birtviewer mit :
Code:
WebViewer.startup();
WebViewer.display(location, WebViewer.HTM);

was mache ich falsch?

Danke für eure Hilfe!
 
Hi,
die Exception wäre vermutlich hilfreich. Welche Dependencies hast du denn angegeben? Ich brauchte über 6 von BIRT (mit javascript und derby...).

Arbeitest du auch mit Features? Dann kannst du vielleicht mal hier schaun... ;)
 
Zuletzt bearbeitet:
Hallo Hier ist der Exception log:
Code:
org.eclipse.birt.report.engine.api.EngineException: Class org.eclipse.birt.examples.rcpviewer.CountingScriptedEventHandler not found.
	at org.eclipse.birt.report.engine.executor.EventHandlerManager.getInstance(EventHandlerManager.java:81)
	at org.eclipse.birt.report.engine.script.internal.ScriptExecutor.getInstance(ScriptExecutor.java:112)
	at org.eclipse.birt.report.engine.script.internal.DataSetScriptExecutor.initEventHandler(DataSetScriptExecutor.java:63)
	at org.eclipse.birt.report.engine.script.internal.ScriptDataSetScriptExecutor.initEventHandler(ScriptDataSetScriptExecutor.java:67)
	at org.eclipse.birt.report.engine.script.internal.DataSetScriptExecutor.<init>(DataSetScriptExecutor.java:49)
	at org.eclipse.birt.report.engine.script.internal.ScriptDataSetScriptExecutor.<init>(ScriptDataSetScriptExecutor.java:53)
	at org.eclipse.birt.report.engine.adapter.ModelDteApiAdapter.newScriptDataSet(ModelDteApiAdapter.java:549)
	at org.eclipse.birt.report.engine.adapter.ModelDteApiAdapter.appendRuntimeInfoToDataSet(ModelDteApiAdapter.java:209)
	at org.eclipse.birt.report.engine.adapter.ModelDteApiAdapter.doDefineDataSet(ModelDteApiAdapter.java:278)
	at org.eclipse.birt.report.engine.adapter.ModelDteApiAdapter.defineDataSet(ModelDteApiAdapter.java:237)
	at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.prepare(AbstractDataEngine.java:147)
	at org.eclipse.birt.report.engine.executor.ReportExecutor.execute(ReportExecutor.java:123)
	at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportExecutor.execute(WrappedReportExecutor.java:60)
	at org.eclipse.birt.report.engine.internal.executor.emitter.ReportEmitterExecutor.execute(ReportEmitterExecutor.java:77)
	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.presentation.ReportDocumentBuilder.build(ReportDocumentBuilder.java:234)
	at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:252)
	at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:85)
	at org.eclipse.birt.report.service.ReportEngineService.runReport(ReportEngineService.java:1307)
	at org.eclipse.birt.report.service.BirtViewerReportService.runReport(BirtViewerReportService.java:159)
	at org.eclipse.birt.report.service.actionhandler.BirtRunReportActionHandler.__execute(BirtRunReportActionHandler.java:81)
	at org.eclipse.birt.report.service.actionhandler.BirtGetPageActionHandler.__checkDocumentExists(BirtGetPageActionHandler.java:58)
	at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.prepareParameters(AbstractGetPageActionHandler.java:119)
	at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.__execute(AbstractGetPageActionHandler.java:104)
	at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)
	at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47)
	at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:143)
	at org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPage(BirtDocumentProcessor.java:87)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112)
	at org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
	at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
	at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
	at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
	at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
	at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
	at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
	at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
	at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
	at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:265)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
	at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)
	at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)
	at org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:59)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:318)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:380)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.Server.handle(Server.java:324)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)
	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:880)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:748)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:213)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
Caused by: java.lang.ClassNotFoundException: org.eclipse.birt.examples.rcpviewer.CountingScriptedEventHandler
	at org.eclipse.birt.core.framework.URLClassLoader.findClass1(URLClassLoader.java:185)
	at org.eclipse.birt.core.framework.URLClassLoader$1.run(URLClassLoader.java:154)
	at org.eclipse.birt.core.framework.URLClassLoader$1.run(URLClassLoader.java:1)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.eclipse.birt.core.framework.URLClassLoader.findClass(URLClassLoader.java:149)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
	at org.eclipse.birt.report.engine.executor.ApplicationClassLoader.loadClass(ApplicationClassLoader.java:79)
	at org.eclipse.birt.report.engine.executor.EventHandlerManager.getInstance(EventHandlerManager.java:76)

es handelt es sich dabei um eine Subclass von org.eclipse.birt.report.engine.api.script.eventadapter.ScriptedDataSetEventAdapter
als dependencies hab ich alle nötigen Plugins viewer,scriptfunktion,derby..

Danke für die Hifel :)
 
Ich hatte das gleiche Problem;

org.eclipse.birt.report.viewer;bundle-version="2.5.2"
org.eclipse.birt.report.engine.script.javascript;bundle-version="2.5.2"
org.eclipse.birt.report.engine.emitter.html;bundle-version="2.5.2"
org.eclipse.birt.report.engine.emitter.html.config;bundle-version="2.5.2"

als Require-Bundle eintragen. Danach funktioniert der WebViewer problemlos.
 
Zurück