GravityManager.getGravity ()는 null을 돌려줍니다
-
13-11-2019 - |
문제
Graniteds에서 중력을 구현하려고합니다.나는 Graniteds 웹 사이트에서 예를 들어 모든 것을 수행했지만 서블릿 컨텍스트에서 중력을 얻으려고 할 때 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>
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>
해결책
나는 그 문제를 발견했다고 생각합니다.나는 이것을 위해 부분을 바꿨다 :
<servlet>
<servlet-name>GravityServlet</servlet-name>
<servlet-class>org.granite.gravity.servlet3.GravityAsyncServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
.
이제 중력 객체는 컨텍스트에서 찾을 수 있습니다.