2012-02-27 9 views
0

私はGraniteDSからGravityを実装しようとしています。私は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オブジェクトがコンテキスト内で見つかりました。

関連する問題