2012-02-27 3 views
0

GraniteDS에서 중력을 구현하려고합니다. GraniteDS 웹 사이트의 예제처럼 모든 것을했는데 서블릿 컨텍스트에서 중력을 얻으려고 할 때 GravityManager.getGravity는 null을 반환합니다. 다음은 코드입니다.GravityManager.getGravity()가 null을 반환합니다.

Gravity gravity = GravityManager.getGravity(contextManager.getServletContext()); 

이 오류의 원인은 무엇입니까?

UPD : web.xml 파일에서
: 서비스-config.xml 파일에서

<servlet> 
     <servlet-name>GravityServlet</servlet-name> 
     <servlet-class>org.granite.gravity.tomcat.GravityTomcatServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>GravityServlet</servlet-name> 
     <url-pattern>/gravityamf/*</url-pattern> 
    </servlet-mapping> 

:

<service id="messaging-service" class="flex.messaging.services.MessagingService" 
       messageTypes="flex.messaging.messages.AsyncMessage"> 
       <adapters> 
        <adapter-definition id="default" 
         class="org.granite.gravity.adapters.SimpleServiceAdapter" default="true" /> 
       </adapters> 

       <destination id="Gravity"> 
        <channels> 
         <channel ref="my-gravityamf" /> 
        </channels> 
       </destination> 
      </service> 
<channels> 
     <channel-definition id="my-graniteamf" 
      class="mx.messaging.channels.AMFChannel"> 
      <endpoint 
       uri="http://{server.name}:{server.port}/{context.root}/graniteamf/amf" 
       class="flex.messaging.endpoints.AMFEndpoint" /> 
     </channel-definition> 

     <channel-definition id="my-gravityamf" 
      class="org.granite.gravity.channels.GravityChannel"> 
      <endpoint 
       uri="http://{server.name}:{server.port}/{context.root}/gravityamf/amf" 
       class="flex.messaging.endpoints.AMFEndpoint" /> 
     </channel-definition> 
    </channels> 
+0

'contextManager.getServletContext();'가 유효한 값을 반환하는지 확인 했습니까? –

+0

예, 있습니다. 그것은 문제없이 ServletContextAware 인터페이스를 사용하여 작동합니다. – Mikhail

+0

이 링크를 참조 했습니까? http://www.graniteds.org/confluence/display/DOC/4.+Data+Push+(Gravity)? – Triode

답변

0

내가 문제를 발견 한 것 같아요.

<servlet> 
     <servlet-name>GravityServlet</servlet-name> 
     <servlet-class>org.granite.gravity.servlet3.GravityAsyncServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

이제 Gravity 객체를 컨텍스트에서 찾을 수 있습니다.