Die Verwendung von Filtern mit Grizzly-Server einen Jersey REST-Dienst ausgeführt wird

StackOverflow https://stackoverflow.com/questions/1439503

  •  10-07-2019
  •  | 
  •  

Frage

Ich versuche, Grizzly zu verwenden, um einen Server erstellen einen REST-Dienst auszuführen, die ich entwickelt habe mit Jersey. Ich erstelle den Grizzly-Server mit:

final String baseUri = "http://localhost:9998/";
final Map<String, String> initParams = new HashMap<String, String>();
initParams.put("com.sun.jersey.config.property.packages", "me.my.rest.package");
SelectorThread threadSelector = 
  GrizzlyWebContainerFactory.create(baseUri, initParams);

als alle Beispiele, die ich gefunden habe, scheinen darauf hinzudeuten. Das ist in Ordnung, der Server gestartet und in der Lage, eingehende Anfragen an meine Ressourcenklassen zu übermitteln.

Allerdings ist die Service-Implementierung erfordert es einen Servlet-Filter zu verwenden. Es scheint, dass Grizzly die Definition von Filtern und anderen ähnlichen Servlet-bezogenen Konfigurationsoptionen über die ServletAdapter Klasse unterstützt. Mein Problem ist, dass ich nicht herausfinden kann, wie man einen Filter definieren, wenn eine com.sun.jersey.api.container.grizzly.GrizzlyWebContainerFactory verwendet, die Jersey-Integration bietet.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Ich denke, dass ich etwas für Sie haben könnte ...

GrizzlyWebServer ws = new GrizzlyWebServer(9999);
ServletAdapter jerseyServletAdapter = new ServletAdapter();
jerseyServletAdapter.setServletInstance(new ServletContainer());
jerseyServletAdapter.addInitParameter(
    "com.sun.jersey.config.property.packages", "me.my.rest.package");
jerseyServletAdapter.setServletPath("/api");

// HERE IS HOW YOU ADD A FILTER 
jerseyServletAdapter.addFilter(new MyFilter(), "HibernateSessionFilter", null);

ws.addGrizzlyAdapter(jerseyServletAdapter, null);

... seine Arbeits für mich, ich hoffe, es hilft Ihnen auch.

Andere Tipps

Haben Sie versucht:

((ServletAdapter) threadSelector.getAdapter()).addFilter()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top