# OSGi Equinox HttpService only supports servlet 2.1 specification.



## Eric Bovic (20. Jun 2012)

Hallo zusammen

ich versuche ein vaadinAddon (dontpus-ozonelayer) in Equinox zu verwenden.

im BundleActivator wir das Servlet beim HttpService registriert, was zum Fehler führt.


```
Hashtable<String, String> param = new Hashtable<String, String>();
param.put("description", "Vaadin application class to start");
param.put("application", "myapp.DontpushApplication");

ServiceReference sRef = context.getServiceReference(HttpService.class.getName());
if (sRef != null) {
     HttpService service = (HttpService) context.getService(sRef);
     service.registerServlet("/*", new DontPushOzoneServlet(), param, null);
}
```

Die Fehlermeldung lautet:

java.lang.UnsupportedOperationException: *HttpService only supports servlet 2.1 specification.*
	at org.eclipse.equinox.http.servlet.ServletContextImpl.getInitParameterNames(ServletContextImpl.java:422)
	at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.init(AbstractApplicationServlet.java:228)
	at com.vaadin.terminal.gwt.server.ApplicationServlet.init(ApplicationServlet.java:54)
	at org.vaadin.dontpush.server.DontPushOzoneServlet.init(DontPushOzoneServlet.java:55)
	at org.eclipse.equinox.http.HttpListener.registerServlet(HttpListener.java:333)
	at org.eclipse.equinox.http.HttpService.registerServlet(HttpService.java:54)
	at mynewchatapp.ChatActivator.start(ChatActivator.java:45)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
	at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:299)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:291)
	at org.eclipse.osgi.framework.internal.core.FrameworkCommandProvider._start(FrameworkCommandProvider.java:333)
	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.osgi.framework.internal.core.FrameworkCommandInterpreter.execute(FrameworkCommandInterpreter.java:209)
	at org.eclipse.osgi.framework.internal.core.FrameworkConsole.docommand(FrameworkConsole.java:155)
	at org.eclipse.osgi.framework.internal.core.FrameworkConsole.runConsole(FrameworkConsole.java:140)
	at org.eclipse.osgi.framework.internal.core.FrameworkConsole.run(FrameworkConsole.java:104)
	at java.lang.Thread.run(Thread.java:662)

Der HttpService ist von org.eclipse.equinox.http_1.0.500.v20110413.jar

Hat jemand eine Idee, welche HttpServie Implementierung von Equinox nicht die 2.1 API benötigt?
Oder wie das Problem sontst gelöst werden kann.
Bzw. weiß jemand generell was bie diesem Fehler zu tun ist (im OSGi / Equinux umfeld)

Vielen Dank bin für jede Idee / Antwort dankbar


----------



## DerFeivel (20. Jun 2012)

> java.lang.UnsupportedOperationException: HttpService only supports servlet 2.1 specification.



Heisst, dass die HttpService-Implementierung nur die Servlet-Spezifikation 2.1 unterstützt.


Meine Vermutung (ungetestet da gerade auf Arbeit):

Ergo benötigtst du entweder eine HttpService-Implementierung, welche die Servlet-Spec des _new DontPushOzoneServlet()_ unterstützt

oder

eine Version des DontPushOzoneServlets welche gegen die Servlet-Spec 2.1 implementiert ist.


----------



## Eric Bovic (21. Jun 2012)

Hi,

danke für den Tipp. So eine Vermutung habe ich auch. Aber welche HttpService-Implementierung wäre das. Bei equinox kann ich nur diese finden
org.eclipse.equinox.http_1.0.500.v20110413.jar
GIbts irgendwo eine neuere?



DerFeivel hat gesagt.:


> eine Version des DontPushOzoneServlets welche gegen die Servlet-Spec 2.1 implementiert ist


Das wird es nicht geben, dazu ist DontPushOzoneServlets zu neu bzw. Servlet-Spec 2.1 viel zu alt.
Aber es muss doch von equinox eine Implementierung geben welche gegen Servlet-Spec 2.4 oder höher geht?
Besten Dank


----------

