GravityManager.getGravity() retorna nulo
-
13-11-2019 - |
Pergunta
Estou tentando implementar o Gravity do GraniteDS.Fiz tudo como no exemplo do site GraniteDS, mas quando estou tentando obter a gravidade do contexto do servlet, GravityManager.getGravity retorna nulo.Aqui está o código:
Gravity gravity = GravityManager.getGravity(contextManager.getServletContext());
Qual pode ser o motivo desse erro?
Atualização:
De 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>
Em services-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>
Solução
Acho que encontrei o problema.Mudei parte para isso:
<servlet>
<servlet-name>GravityServlet</servlet-name>
<servlet-class>org.granite.gravity.servlet3.GravityAsyncServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
Agora o objeto Gravidade pode ser encontrado no contexto.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow