2012-02-27 5 views
0

Я пытаюсь реализовать Gravity от GraniteDS. Я делал все как в примере с сайта GraniteDS, но когда я пытаюсь получить гравитацию из контекста сервлета, GravityManager.getGravity возвращает null. Вот код:GravityManager.getGravity() возвращает null

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

В чем причина этой ошибки?

UPD:
От web.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> 

От услуг-config.xml:

<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 можно найти в контексте.