2010-12-01 3 views
5

사용자에게 메시지를 브로드 캐스팅 할 수 있도록 저지와 함께 대기를 시도 중입니다. 그러나 Jersey 엔드 포인트에 요청하면 로그에 다음과 같은 메시지가 나타나고 ServletException이 발생합니다. 스택 트레이스의대기 및 저지와의 종속성이 누락되었습니다.

SEVERE: The following errors and warnings have been detected with resource and/or provider classes: 
    SEVERE: Missing dependency for method public void org.apache.cxf.jaxrs.provider.JSONProvider.setMessageContext(org.apache.cxf.jaxrs.ext.MessageContext) at parameter at index 7 
    SEVERE: Missing dependency for field: private org.apache.cxf.jaxrs.ext.MessageContext org.apache.cxf.jaxrs.provider.RequestDispatcherProvider.mc 
    SEVERE: Missing dependency for method public void org.apache.cxf.jaxrs.provider.JAXBElementProvider.setMessageContext(org.apache.cxf.jaxrs.ext.MessageContext) at parameter at index 1 
    SEVERE: Missing dependency for field: private org.apache.cxf.jaxrs.ext.MessageContext org.apache.cxf.jaxrs.provider.MultipartProvider.mc 
    SEVERE: Missing dependency for method public void org.apache.cxf.jaxrs.provider.JAXBElementProvider.setMessageContext(org.apache.cxf.jaxrs.ext.MessageContext) at parameter at index 13 
    SEVERE: Missing dependency for field: private org.apache.cxf.jaxrs.ext.MessageContext org.apache.cxf.jaxrs.provider.FormEncodingProvider.mc 

부 :

<dependency> 
    <groupId>org.atmosphere</groupId> 
    <artifactId>atmosphere-jersey</artifactId> 
    <version>0.6.3</version> 
</dependency> 

내가 놓치고 무엇 : 내가 메이븐을 사용하고 다음과 같은 의존성을 추가 한

SEVERE: Allocate exception for servlet AtmosphereServlet 
javax.servlet.ServletException 
    at org.atmosphere.cpr.AtmosphereServlet.init(AtmosphereServlet.java:540) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173) 
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:809) 

? 감사!

답변

6

애플리케이션에 JAX-RS의 두 구현이 어떻게 든 존재한다는 것이 문제였습니다. Jersey가 Rest 클래스를 포함하는 패키지 만 스캔하도록 만들면 다른 JAX-RS 구현을 인식하지 못하게 될 수 있습니다.

<servlet> 
    <description>AtmosphereServlet</description> 
    <servlet-name>AtmosphereServlet</servlet-name> 
    <servlet-class>org.atmosphere.cpr.AtmosphereServlet</servlet-class> 
    ... 
    <init-param> 
    <param-name>com.sun.jersey.config.property.packages</ param-name> 
    <param-value>mypackage.with.the.rest.classes</param-value> 
    </init-param> 
</servlet> 

저지 메일 링리스트의 Paul Sandoz와 대기업의 Jeanfrancois 메일 링리스트 덕택입니다.

+0

덕분에, 내 경우에는 완벽하게 작동 "SEVERE : 메소드에 대한 의존성 누락 org.apache.cxf.jaxrs.provider.RequestDispatcherProvider.setMessageContext (org.apache.cxf.jaxrs.ext.MessageContext) at 매개 변수 인덱스 14"mypackage.with.the.rest를 변경했습니다. 내 REST가 정의되고 모든 것이 작동하는 패키지의 클래스. 고마워. – tremendows

0

은 web.xml에있는 웹 응용 프로그램 설명자 버전을 다운 그레이드하는 것은 기본을 해제 (뉴저지) 스캔을 도울 수 있다고보고되었다 : 아파치 톰캣은 나에게 말하고있는 동안 http://cxf.apache.org/docs/jax-rs-deployment.html#JAX-RSDeployment-WebLogic

<!-- From: --> 
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_3_0.xsd"> 
</web-app> 
<!-- To: --> 
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
</web-app> 
관련 문제