Pergunta

Eu estou tentando usar Grizzly para criar um servidor para executar um serviço REST que eu desenvolvi usando Jersey. Estou criando o servidor Grizzly usando:

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

como todos os exemplos que eu encontrei parecem sugerir. Isso é bom, o servidor inicia e é capaz de transmitir solicitações de entrada para minhas aulas de recursos.

No entanto, a implementação do serviço requer o uso de um filtro de servlet. Parece que Grizzly suporta a definição de filtros e outras opções de configuração relacionadas servlet semelhantes, através da classe ServletAdapter. Meu problema é que eu não posso trabalhar para fora como para definir um filtro quando se utiliza um com.sun.jersey.api.container.grizzly.GrizzlyWebContainerFactory que fornece integração Jersey.

Todas as idéias?

Foi útil?

Solução

Eu acho que pode ter algo para você ...

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

... seu trabalho para mim, espero que ajude você também.

Outras dicas

Você tentou:

((ServletAdapter) threadSelector.getAdapter()).addFilter()
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top