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 -~----------~----~----~----~------~----~------~--~---
