Community
Participate
Working Groups
Build Identifier: 20100917-0705 when trying to invoke BIRT report using web viewer in RAP, following error gets generated.. !ENTRY org.eclipse.rap.ui 4 0 2010-12-07 13:09:48.374 !MESSAGE Unhandled event loop exception !STACK 0 java.lang.NoClassDefFoundError: org/eclipse/birt/report/designer/ui/ReportPlugin at org.eclipse.birt.report.viewer.utilities.ViewerClassPathHelp er.getWorkspaceClassPath(ViewerClassPathHelper.java:191) at org.eclipse.birt.report.viewer.utilities.WebViewer.startWebA pp(WebViewer.java:756) at org.eclipse.birt.report.viewer.utilities.WebViewer.display(W ebViewer.java:1004) at org.eclipse.birt.report.viewer.utilities.WebViewer.display(W ebViewer.java:998) at com.argos.sys.base.controller.birt.provider.CustomBirtReport Provider.decorateReportInBrowser(CustomBirtReportProvider.ja va:42) at com.argos.sys.base.controller.widget.editor.CustomReportEdit orPart.invokeRunReport(CustomReportEditorPart.java:381) at com.argos.sys.base.controller.widget.editor.CustomReportEdit orPart.access$1(CustomReportEditorPart.java:367) at com.argos.sys.base.controller.widget.editor.CustomReportEdit orPart$5.handleEvent(CustomReportEditorPart.java:319) at org.eclipse.swt.internal.widgets.UntypedEventAdapter.dispatc hEvent(UntypedEventAdapter.java:651) at org.eclipse.swt.internal.widgets.UntypedEventAdapter.widgetS elected(UntypedEventAdapter.java:88) at org.eclipse.swt.events.SelectionEvent.dispatchToObserver(Sel ectionEvent.java:194) at org.eclipse.rwt.internal.events.Event.processEvent(Event.jav a:44) at org.eclipse.swt.events.TypedEvent.processEvent(TypedEvent.ja va:161) at org.eclipse.swt.events.TypedEvent.executeNext(TypedEvent.jav a:201) at org.eclipse.swt.widgets.Display.runPendingMessages(Display.j ava:1100) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :1090) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2390) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2351) at org.eclipse.ui.internal.Workbench.access$5(Workbench.java:22 06) at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:424) at org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:332) at org.eclipse.jface.internal.databinding.realmadapter.RealmAda pter.run(RealmAdapter.java:44) at org.eclipse.rap.ui.internal.RealmAdapterHook.runWithDefault( RealmAdapterHook.java:48) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:427) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:157) at com.argos.sys.client.entrypoint._rap.ClientEntryPoint.create UI(ClientEntryPoint.java:18) at org.eclipse.rwt.internal.lifecycle.EntryPointManager.createU I(EntryPointManager.java:92) at org.eclipse.rwt.internal.lifecycle.RWTLifeCycle.createUI(RWT LifeCycle.java:245) at org.eclipse.rwt.internal.lifecycle.RWTLifeCycle$UIThreadCont roller.run(RWTLifeCycle.java:114) at java.lang.Thread.run(Unknown Source) at org.eclipse.rwt.internal.lifecycle.UIThread.run(UIThread.jav a:102) Caused by: java.lang.ClassNotFoundException: org.eclipse.birt.report.designer.ui.ReportPlugin at org.eclipse.osgi.internal.loader.BundleLoader.findClassInter nal(BundleLoader.java:513) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(Bund leLoader.java:429) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(Bund leLoader.java:417) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loa dClass(DefaultClassLoader.java:107) at java.lang.ClassLoader.loadClass(Unknown Source) ... 31 more This looks like a change that was introduced for designer classpath issues. In the WebViewer class there is a startWebApp method that adds urls to the cp based on the designer classpath: try { // if don't load debug ui, viewer will handle to set workspace // classpath String debugMode = System.getProperty( REPORT_DEBUT_MODE ); if ( debugMode == null ) { // get workspace classpath URL[] urls = ViewerClassPathHelper.getWorkspaceClassPath( reportFileName ); if ( reloadableClassLoader == null ) { // create ReloadableClassLoader reloadableClassLoader = new ReloadableClassLoader( urls, WebViewer.class.getClassLoader( ) ); } else { // reload class reloadableClassLoader.setUrls( urls ); reloadableClassLoader.reload( ); } } Jason Weathersby SUGGESTED ME A WORKAROUND AND IT'S WORKING. FIND BELOW NOTES PROVIDED BY HIM.. Can you try to set the debug mode to true? System.setProperty( WebViewer.REPORT_DEBUT_MODE,true ); before calling your viewer code? Also it would be good if you could log a bug for this. Jason Reproducible: Always Steps to Reproduce: 1. WebViewer on RAP [message #641634], under BIRT forum, you may find all the detail discussions and related. This happens when we try to invoke BIRT report in a webviewer component in RAP. 2. 3.
This is more a BIRT issue than RAP. Move it to BIRT.
I think this was fixed, can you try the latest version?
related post in BIRT forum: http://www.eclipse.org/forums/index.php?t=msg&th=200956&start=0
fixed.
Verified in 3.7M7