Question

J'essaie d'utiliser Grizzly pour créer un serveur permettant d'exécuter un service REST que j'ai développé à l'aide de Jersey. Je crée le serveur Grizzly en utilisant:

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);

comme tous les exemples que j'ai trouvés semblent suggérer. C'est bien, le serveur démarre et peut transférer les demandes entrantes vers mes classes de ressources.

Cependant, l'implémentation du service nécessite l'utilisation d'un filtre de servlet. Il semble que Grizzly prenne en charge la définition des filtres et d’autres options de configuration similaires liées aux servlets, via la classe ServletAdapter . Mon problème est que je ne sais pas comment définir un filtre avec un com.sun.jersey.api.container.grizzly.GrizzlyWebContainerFactory fournissant l'intégration de Jersey.

Des idées?

Était-ce utile?

La solution

Je pense que je pourrais avoir quelque chose pour vous ...

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);

... ça marche pour moi, j'espère que ça vous aidera aussi.

Autres conseils

Avez-vous essayé:

((ServletAdapter) threadSelector.getAdapter()).addFilter()
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top