Question

I'm trying to implement Gravity from GraniteDS. I did everything like in example from GraniteDS website, but when I'm trying to get gravity from servlet context, GravityManager.getGravity returns null. Here is the code:

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

What can be the reason of this error?

UPD:
From 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>

From 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>
Was it helpful?

Solution

I think I found the problem. I changed part for this:

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

Now the Gravity object can be found in the context.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top