# GWT in Equinox



## wickedsick (30. Jul 2010)

Hallo zusammen,

ich habe die letzten Tage mal versucht, eine GWT-Anwendung in Equinox 3.6 aufzusetzen. Leider bekomme ich es nicht zum laufen. Hat von euch jemand sows schonmal aufgesetzt und zum laufen bekommen? Wenn möglich, würde ich gerne bei Equinox bleiben, da die anderen OSGi-Container meines Wissens nach kein Load-Time-Weaving von AspectJ unterstützen.

Hier mal, was ich bisher gemacht habe.

1.) Nach der Anleitung auf Building a Server-based Application with Equinox die OSGi-Umgebung eingerichtet und mal ein einfaches Servlet getestet, funktioniert einwandfrei. Gleiches gilt auch für die Felix Webconsole.

2.) Nach der Anleitung auf Google Web Toolkit and Equinox - Eclipsepedia die GWT-Libs "verbundled", eine GWT-Anwendung mit dem Eclipse Plugin erstellen lassen und anschließend in ein Plugin-Projekt konvertieren lassen. Dann die Abhängigkeiten in der Manifest gepflegt und anschließend getestet.

2b.) Ich bekommen dann immer diese Fehlermeldung, was für mich im Moment nicht wirklich Sinn ergibt, da die nicht gefundene Klasse sich im angezeigten Bundle befindet.


```
org.eclipse.core.runtime.CoreException: Plug-in gwt.osgi.example was unable to load class gwt.osgi.example.server.GreetingServiceImpl
```

Man findet zwar viele Seiten, die sich mit GWT/OSGi beschäftigen, leider sind aber viele schon etwas älter und funktionieren bei mir nicht. Vielleicht hat von euch jemand sowas schonmal gemacht und ne Idee, was geändert werden muss oder ein kleines funktionstüchtiges Beispielprojekt (mit GWT 2.x).

Dank & Gruß


----------



## Gelöschtes Mitglied 5909 (30. Jul 2010)

Hast du sie denn richtig importiert? 

Zum testen (_nur_ zum testen) kannst du mal DynamicImport-Package: * machen


----------



## Wildcard (30. Jul 2010)

> org.eclipse.core.runtime.CoreException: Plug-in gwt.osgi.example was unable to load class gwt.osgi.example.server.GreetingServiceImpl


Stand nicht noch mehr im Log? Normalerweise taucht auch irgendwo ein Cause auf.


----------



## wickedsick (31. Jul 2010)

Hallo,



raiL hat gesagt.:


> Hast du sie denn richtig importiert?
> 
> Zum testen (_nur_ zum testen) kannst du mal DynamicImport-Package: * machen



Die Klasse liegt im gleichen Bundle, dass diese Klasse nicht findet. Hab trotzdem mal den dynamischen import getestet, aber hat nicht geklappt. Ich vermute, dass zwar das gwt.example-Bundle angezeigt wird, in Wirklichkeit aber das com.google.gwt-Bundle die Implementierung nicht finden kann (aus welchen Gründen auch immer, wird ja immerhin das Equinox Buddy Class Loading verwendet).



Wildcard hat gesagt.:


> Stand nicht noch mehr im Log? Normalerweise taucht auch irgendwo ein Cause auf.



Anbei der stacktrace.


```
Problem accessing /gwt. Reason:

    Plug-in gwt.example was unable to load class gwt.example.server.GreetingServiceImpl.

Caused by:

org.eclipse.core.runtime.CoreException: Plug-in gwt.example was unable to load class gwt.example.server.GreetingServiceImpl.
	at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.throwException(RegistryStrategyOSGI.java:194)
	at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:176)
	at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:904)
	at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
	at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
	at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.initializeDelegate(ServletManager.java:194)
	at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:179)
	at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:126)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)
	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:511)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
	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:326)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:924)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
	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:582)
Caused by: java.lang.ClassNotFoundException: gwt.example.server.GreetingServiceImpl
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:506)
	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:248)
	at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:338)
	at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:232)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1197)
	at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
	... 23 more

Caused by:

java.lang.ClassNotFoundException: gwt.example.server.GreetingServiceImpl
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:506)
	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:248)
	at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:338)
	at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:232)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1197)
	at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
	at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:904)
	at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
	at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
	at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.initializeDelegate(ServletManager.java:194)
	at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:179)
	at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:126)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)
	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:511)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
	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:326)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:924)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
	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:582)
```

Ich habe leider keine Ahnung, wo dort das Problem liegen könnte. Falls ihr noch Ideen habt, bin ich für jede Hilfe dankbar.

LG


----------

