Jersey em Tomcat+Spring Environment não pode encontrar o ComponentProvider. Por quê?
Pergunta
Eu implantei Jersey no Tomcat e tudo funciona perfeitamente (quando eu uso o com.sun.jersey.spi.container.servlet.servletContainer), mas assim que eu o mudar para o com.sun.jersey.spi.spring. Container.servlet.springServlet (De acordo com todos os tutoriais que posso encontrar), recebo uma exceção desagradável:
Apr 19, 2009 5:07:35 PM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet ServletAdaptor as unavailable
Apr 19, 2009 5:07:35 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /myservice threw load() exception
java.lang.ClassNotFoundException: com.sun.jersey.spi.service.ComponentProvider
Alguma idéia de qual pacote/distribuição ele pode residir? o que estou perdendo?
Pode ser que eu não preciso disso. Estou tentando garantir que, quando minha classe de recursos estiver carregada, ela será executada automaticamente e é inicializada com o restante do feijão depende. Pode ser feito de maneira diferente?
Obrigado.
Solução
A interface com.sun.jersey.spi.service.componentProvider faz parte do frasco de jersey-core, por isso é estranho que você esteja obtendo essa exceção.
Certifique -se de que você esteja usando a mesma versão das bibliotecas Jersey (ou seja, você está usando as bibliotecas Jersey 1.0.1, não misturando 1.0 e 1.0.1, quando as classes de primavera foram renomeadas entre esses dois lançamentos).
Certifique -se também de ter um contextloaderListener em seu web.xml como assim:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>