# JSVGCanvas in RCP View anzeigen



## Tomas (31. Aug 2009)

Hallo, 

ich arbeite seit einigen Tagen daran eine JSVGCanvas in eine RCP View anzuzeigen. Da ich noch ein Anfänger bin habe ich probleme dies zu realisieren.
Gibt es irgendwelche Möglichkeiten dies einfacher zu machen oder tutorials?


public class View extends ViewPart {
	public static final String ID = "Comet_Panel_SVGView.view";
	private Composite comp;

	public void createPartControl(Composite parent) {	
		this.comp = new Composite(parent, SWT.EMBEDDED);	
		Frame f = SWT_AWT.new_Frame(comp);
		JSVGCanvas can = new JSVGCanvas();
		f.add(can);


	}

	/**
	 * Passing the focus request to the viewer's control.
	 */
	public void setFocus() {
		comp.setFocus();
	}
}

Dies funktioniert nicht und es kommt die Fehlermeldung:

java.lang.NoClassDefFoundError: org/apache/batik/swing/JSVGCanvas
	at java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
	at java.lang.Class.getConstructor0(Class.java:2699)
	at java.lang.Class.newInstance0(Class.java:326)
	at java.lang.Class.newInstance(Class.java:308)
	at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:170)
	at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:867)
	at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
	at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:51)
	at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:259)
	at org.eclipse.ui.internal.registry.ViewDescriptor.createView(ViewDescriptor.java:63)
	at org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:328)
	at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:230)
	at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:594)
	at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:306)
	at org.eclipse.ui.internal.ViewPane.setVisible(ViewPane.java:531)
	at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:180)
	at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:270)
	at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)
	at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:473)
	at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1256)
	at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1209)
	at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:1608)
	at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:649)
	at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:576)
	at org.eclipse.ui.internal.PartSashContainer.createControl(PartSashContainer.java:568)
	at org.eclipse.ui.internal.PerspectiveHelper.activate(PerspectiveHelper.java:271)
	at org.eclipse.ui.internal.Perspective.onActivate(Perspective.java:964)
	at org.eclipse.ui.internal.WorkbenchPage.onActivate(WorkbenchPage.java:2593)
	at org.eclipse.ui.internal.WorkbenchWindow$25.run(WorkbenchWindow.java:2869)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.WorkbenchWindow.setActivePage(WorkbenchWindow.java:2850)
	at org.eclipse.ui.internal.WorkbenchWindow.busyOpenPage(WorkbenchWindow.java:759)
	at org.eclipse.ui.internal.Workbench$21.runWithException(Workbench.java:1027)
	at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3800)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3425)
	at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803)
	at org.eclipse.ui.internal.Workbench$27.runWithException(Workbench.java:1361)
	at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
	at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:178)
	at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:150)
	at org.eclipse.swt.widgets.Display.syncExec(Display.java:4251)
	at org.eclipse.ui.internal.StartupThreading.runWithoutExceptions(StartupThreading.java:94)
	at org.eclipse.ui.internal.Workbench.init(Workbench.java:1356)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2312)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at comet_panel_svgview.Application.start(Application.java:20)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:382)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	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.equinox.launcher.Main.invokeFramework(Main.java:549)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
Caused by: java.lang.ClassNotFoundException: org.apache.batik.swing.JSVGCanvas
	at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:481)
	at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:397)
	at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:385)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:87)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
	... 67 more


----------



## Tomas (1. Sep 2009)

hab das problem gelöst!

doch ich hab ein neues

java.lang.NoClassDefFoundError: org/apache/http/conn/scheme/SocketFactory

obwohl ich die bibliotheken auch im build register eingebunden habe findet er eigentlich die httpclient.jar nicht? gibts da ne lösung wie ich die besser dazuhänge um das plugin zum laufen zu bringen?


----------



## dzim (2. Sep 2009)

Du hast aber die jar auch im Runtime-Reiter vom plugin.xml eingetragen, ja?
Dort ist der Classpath-Abschnitt... Also wenigstens damit hatte ich noch nie Probleme und ich verwende das mitunter recht viel!


----------



## Tomas (2. Sep 2009)

ja hab ich. ich hab mir die source von der org.apache runtergeladen und hab jetzt die ganzen sources als packages in meinem project jetzt funkts keine ahnung warum. batik lässt sich so wie du gesagt hast einbinden aber die org.apache.http nicht....  merkwürdig


----------



## Wildcard (2. Sep 2009)

Warum nimmst du nicht die OSGi-ifizierte Version der Bibliotheken aus Orbit?
Orbit Bundles - Eclipsepedia


----------



## Tomas (3. Sep 2009)

Tomas hat gesagt.:


> Da ich noch ein Anfänger bin habe ich probleme dies zu realisieren.



aber danke, hat ein bisschen geholfen und es bewahrt die übersicht^^


----------

