Hum interresting. I remember something about RPC.

I created a GWT Bundle, which includes gwt-servlet.jar, export the
packages and allows this JAR to dynamically import resources from
other Bundles.

Here is the Manifest. Check if the "DynamicImport-Package: *" line
works for you. This is important, because the GWT RPC needs to load
classes from your code for the Serialization.

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Gwt Plug-in
Bundle-SymbolicName: gwt
Bundle-Version: 1.6.4
Bundle-Vendor: Google
Bundle-ClassPath: gwt-servlet.jar
DynamicImport-Package: *
Export-Package: com.google.gwt.animation.client,
 com.google.gwt.benchmarks.client,
 com.google.gwt.benchmarks.client.impl,
 com.google.gwt.core.client,
 com.google.gwt.core.client.impl,
 com.google.gwt.dom.client,
 com.google.gwt.event.dom.client,
 com.google.gwt.http.client,
 com.google.gwt.i18n.client,
 com.google.gwt.i18n.client.constants,
 com.google.gwt.i18n.client.impl,
 com.google.gwt.i18n.client.impl.cldr,
 com.google.gwt.i18n.client.impl.plurals,
 com.google.gwt.junit.client,
 com.google.gwt.junit.client.impl,
 com.google.gwt.user.client,
 com.google.gwt.user.client.impl,
 com.google.gwt.user.client.rpc,
 com.google.gwt.user.client.rpc.core.java.lang,
 com.google.gwt.user.client.rpc.core.java.sql,
 com.google.gwt.user.client.rpc.core.java.util,
 com.google.gwt.user.client.rpc.impl,
 com.google.gwt.user.client.ui,
 com.google.gwt.user.client.ui.impl,
 com.google.gwt.user.server.rpc,
 com.google.gwt.user.server.rpc.impl,
 com.google.gwt.xml.client,
 com.google.gwt.xml.client.impl
Import-Package: javax.servlet;version="2.4.0",
 javax.servlet.http;version="2.4.0"

But I made this because I had a ClassNotFound or ResourceNotFound,
many months ago.

I don't need gwt-user.jar, just for the Compilation time I think.


You can also check one app I made with Equinox and GWT:
http://nil.boussemart.com/loggerviewer &
http://nil.boussemart.com/loggerviewer/browser/trunk/loggerviewer

Hope that helps.

Baptiste

On 4 juin, 20:33, giacomo <[email protected]> wrote:
> Hi Baptiste!
>
> Thank you for your reply.
>
> Following your advice I looked into Knopflerfish OSGi framework and
> verified that it does provide Servlet 2.5.0 in the JSDK-API bundle,
> and its implementation of HTTP Service uses Servlet 2.5.0.
>
> Subsequently, I tried to install Jetty OSGi bundles one at a time but
> ran into troubles with dependencies. Thus, I installed Pax Web OPS4J
> (http://wiki.ops4j.org/display/paxweb/Pax+Web) which includes Jetty 6.
>
> With my bundle including gwt-user.jar for, which exports GWT RPC
> packages (but not javax.servlet and javax.servlet.http), I then
> started Pax Web and checked that HTTP Service was available. Then I
> started my GWT RPC Web App OSGi bundle but ran in the same trouble. If
> I try to use Pax Web or Knopflerfish HTTP Server, I get very similar
> errors always re/ IncompatobleClassChangeError as you can see in the
> pasted output:
>
> --- Output w/ Knopflerfish OSGi HTTP Server ---
>
> [stdout] HTTP Service is available
>
> [stderr] java.lang.IncompatibleClassChangeError
> [stderr]        at org.knopflerfish.bundle.http.ServletRegistration.<init>
> (ServletRegistration.java:77)
> [stderr]        at
> org.knopflerfish.bundle.http.HttpServiceImpl.registerServlet
> (HttpServiceImpl.java:173)
> [stderr]        at edu.uta.crewman.giacomo.gwt.servlet.Activator.start
> (Activator.java:46)
> [stderr]        at org.knopflerfish.framework.BundleImpl.start0
> (BundleImpl.java:374)
> [stderr]        at org.knopflerfish.framework.PermissionOps.callStart0
> (PermissionOps.java:215)
> [stderr]        at org.knopflerfish.framework.BundleImpl.start
> (BundleImpl.java:321)
> [stderr]        at org.knopflerfish.bundle.desktop.swing.Desktop.startBundle
> (Desktop.java:2198)
> [stderr]        at org.knopflerfish.bundle.desktop.swing.Desktop
> $16.actionPerformed(Desktop.java:735)
> [stderr]        at javax.swing.AbstractButton.fireActionPerformed
> (AbstractButton.java:1995)
> [stderr]        at javax.swing.AbstractButton$Handler.actionPerformed
> (AbstractButton.java:2318)
> [stderr]        at javax.swing.DefaultButtonModel.fireActionPerformed
> (DefaultButtonModel.java:387)
> [stderr]        at javax.swing.DefaultButtonModel.setPressed
> (DefaultButtonModel.java:242)
> [stderr]        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased
> (BasicButtonListener.java:236)
> [stderr]        at java.awt.AWTEventMulticaster.mouseReleased
> (AWTEventMulticaster.java:272)
> [stderr]        at java.awt.Component.processMouseEvent(Component.java:6216)
> [stderr]        at javax.swing.JComponent.processMouseEvent(JComponent.java:
> 3265)
> [stderr]        at java.awt.Component.processEvent(Component.java:5981)
> [stderr]        at java.awt.Container.processEvent(Container.java:2041)
> [stderr]        at java.awt.Component.dispatchEventImpl(Component.java:4583)
> [stderr]        at java.awt.Container.dispatchEventImpl(Container.java:2099)
> [stderr]        at java.awt.Component.dispatchEvent(Component.java:4413)
> [stderr]        at java.awt.LightweightDispatcher.retargetMouseEvent
> (Container.java:4556)
> [stderr]        at java.awt.LightweightDispatcher.processMouseEvent
> (Container.java:4220)
> [stderr]        at java.awt.LightweightDispatcher.dispatchEvent
> (Container.java:4150)
> [stderr]        at java.awt.Container.dispatchEventImpl(Container.java:2085)
> [stderr]        at java.awt.Window.dispatchEventImpl(Window.java:2475)
> [stderr]        at java.awt.Component.dispatchEvent(Component.java:4413)
> [stderr]        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
> [stderr]        at java.awt.EventDispatchThread.pumpOneEventForFilters
> (EventDispatchThread.java:269)
> [stderr]        at java.awt.EventDispatchThread.pumpEventsForFilter
> (EventDispatchThread.java:184)
> [stderr]        at java.awt.EventDispatchThread.pumpEventsForHierarchy
> (EventDispatchThread.java:174)
> [stderr]        at java.awt.EventDispatchThread.pumpEvents
> (EventDispatchThread.java:169)
> [stderr]        at java.awt.EventDispatchThread.pumpEvents
> (EventDispatchThread.java:161)
> [stderr]        at java.awt.EventDispatchThread.run(EventDispatchThread.java:
> 122)
>
> --- Output w/ Pax Web Jetty 6 ---
>
> [stdout] HTTP Service is available
>
> [stderr] java.lang.IncompatibleClassChangeError
> [stderr]        at org.mortbay.jetty.servlet.ServletHolder.initServlet
> (ServletHolder.java:431)
> [stderr]        at org.mortbay.jetty.servlet.ServletHolder.doStart
> (ServletHolder.java:263)
> [stderr]        at org.mortbay.component.AbstractLifeCycle.start
> (AbstractLifeCycle.java:50)
> [stderr]        at org.mortbay.jetty.servlet.ServletHandler.initialize
> (ServletHandler.java:676)
> [stderr]        at org.mortbay.jetty.servlet.ServletHandler.updateMappings
> (ServletHandler.java:1044)
> [stderr]        at
> org.mortbay.jetty.servlet.ServletHandler.setServletMappings
> (ServletHandler.java:1101)
> [stderr]        at org.mortbay.jetty.servlet.ServletHandler.addServletMapping
> (ServletHandler.java:800)
> [stderr]        at org.ops4j.pax.web.service.internal.JettyServerImpl$1.call
> (JettyServerImpl.java:139)
> [stderr]        at org.ops4j.pax.web.service.internal.JettyServerImpl$1.call
> (JettyServerImpl.java:136)
> [stderr]        at
> org.ops4j.pax.swissbox.core.ContextClassLoaderUtils.doWithClassLoader
> (ContextClassLoaderUtils.java:60)
> [stderr]        at
> org.ops4j.pax.web.service.internal.JettyServerImpl.addServlet
> (JettyServerImpl.java:131)
> [stderr]        at org.ops4j.pax.web.service.internal.ServerControllerImpl
> $Started.addServlet(ServerControllerImpl.java:236)
> [stderr]        at
> org.ops4j.pax.web.service.internal.ServerControllerImpl.addServlet
> (ServerControllerImpl.java:93)
> [stderr]        at
> org.ops4j.pax.web.service.internal.HttpServiceStarted.registerServlet
> (HttpServiceStarted.java:144)
> [stderr]        at
> org.ops4j.pax.web.service.internal.HttpServiceProxy.registerServlet
> (HttpServiceProxy.java:53)
> [stderr]        at edu.uta.crewman.giacomo.gwt.servlet.Activator.start
> (Activator.java:46)
> [stderr]        at org.knopflerfish.framework.BundleImpl.start0
> (BundleImpl.java:374)
> [stderr]        at org.knopflerfish.framework.PermissionOps.callStart0
> (PermissionOps.java:215)
> [stderr]        at org.knopflerfish.framework.BundleImpl.start
> (BundleImpl.java:321)
> [stderr]        at org.knopflerfish.bundle.desktop.swing.Desktop.startBundle
> (Desktop.java:2198)
> [stderr]        at org.knopflerfish.bundle.desktop.swing.Desktop
> $16.actionPerformed(Desktop.java:735)
> [stderr]        at javax.swing.AbstractButton.fireActionPerformed
> (AbstractButton.java:1995)
> [stderr]        at javax.swing.AbstractButton$Handler.actionPerformed
> (AbstractButton.java:2318)
> [stderr]        at javax.swing.DefaultButtonModel.fireActionPerformed
> (DefaultButtonModel.java:387)
> [stderr]        at javax.swing.DefaultButtonModel.setPressed
> (DefaultButtonModel.java:242)
> [stderr]        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased
> (BasicButtonListener.java:236)
> [stderr]        at java.awt.AWTEventMulticaster.mouseReleased
> (AWTEventMulticaster.java:272)
> [stderr]        at java.awt.Component.processMouseEvent(Component.java:6216)
> [stderr]        at javax.swing.JComponent.processMouseEvent(JComponent.java:
> 3265)
> [stderr]        at java.awt.Component.processEvent(Component.java:5981)
> [stderr]        at java.awt.Container.processEvent(Container.java:2041)
> [stderr]        at java.awt.Component.dispatchEventImpl(Component.java:4583)
> [stderr]        at java.awt.Container.dispatchEventImpl(Container.java:2099)
> [stderr]        at java.awt.Component.dispatchEvent(Component.java:4413)
> [stderr]        at java.awt.LightweightDispatcher.retargetMouseEvent
> (Container.java:4556)
> [stderr]        at java.awt.LightweightDispatcher.processMouseEvent
> (Container.java:4220)
> [stderr]        at java.awt.LightweightDispatcher.dispatchEvent
> (Container.java:4150)
> [stderr]        at java.awt.Container.dispatchEventImpl(Container.java:2085)
> [stderr]        at java.awt.Window.dispatchEventImpl(Window.java:2475)
> [stderr]        at java.awt.Component.dispatchEvent(Component.java:4413)
> [stderr]        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
> [stderr]        at java.awt.EventDispatchThread.pumpOneEventForFilters
> (EventDispatchThread.java:269)
> [stderr]        at java.awt.EventDispatchThread.pumpEventsForFilter
> (EventDispatchThread.java:184)
> [stderr]        at java.awt.EventDispatchThread.pumpEventsForHierarchy
> (EventDispatchThread.java:174)
> [stderr]        at java.awt.EventDispatchThread.pumpEvents
> (EventDispatchThread.java:169)
> [stderr]        at java.awt.EventDispatchThread.pumpEvents
> (EventDispatchThread.java:161)
> [stderr]        at java.awt.EventDispatchThread.run(EventDispatchThread.java:
> 122)
>
> Since the error is the same, the problem is somewhere else in my GWT
> RPC Web App and the OSGi bundle I created from gwt-user.jar, so that I
> came up with following ideas:
>
> (i) Should I export javax.servlet from the OSGi bundle created from
> gwt-user.jar?
>
> (ii) Is my GWT RPC Web App dependent on Servlet 2.4.0 so that I run
> into trouble having Servlet 2.5.0 in my OSGi framework? This shouldn't
> be the case as demonstrated from following observation. When I
> developed a Servlet in Eclipse (relying on Servlet 2.4.0) and deployed
> to Knopflerfish (which provides 2.5.0), everything ran fine.
>
> You might be wondering why I keep using Knopflerfish. Well, that's
> because I don't want to risk end up using Equinox's specific features
> and stay OSGi-compliant as much as possible.
>
> Thank you,
>
> Gia
>
> On Jun 4, 7:57 am, Baptiste Boussemart <[email protected]>
> wrote:
>
>
>
> > Hi,
>
> > I think it is because you don't use the Servlet 2.4.
> > As far I know, the default HTTP server doesn't provide this
> > requirement.
>
> > I use GWT on Equinox and Jetty, which provides Servlet 2.4.
> > So you need to use Jetty.
>
> > Hope that this answers to your question.
>
> > Regards,
> > Baptiste Boussemart
>
> > On 3 juin, 23:54, giacomo <[email protected]> wrote:
>
> > > Hi everyone!
>
> > > I'm trying to get the simple Web application in GWT 1.6.4 featuring
> > > GWT RPC to work in Knopflerfish OSGi framework 2.3.1 (an
> > > implementation of the OSGi framework like Equinox).
>
> > > For that matter I created an OSGi bundle from the GWT project and
> > > added an implementation of BundleActivator in which I register the
> > > client-side Web page and the server-side GWT RemoteServiceServlet with
> > > the OSGi-defined HTTP Service....
>
> plus de détails »
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to