No GraniteContext (org.granite.messaging.webapp.AMFMessageFilter not configured in web.xml ?)

99 views
Skip to first unread message

robinsk

unread,
Sep 13, 2010, 9:12:56 AM9/13/10
to Granite Data Services Forum
I'm struggling with initialization of GraniteDS 2.1.0.GA. Before the
summer holidays, we had a basic pull service running just fine. Now
there's an error as soon as a request hits the server and is processed
by the AMFServlet.

WEB-INF/web.xml:

...
<!-- read services-config.xml file at web application startup -->
<listener>
<listener-class>org.granite.config.GraniteConfigListener</listener-
class>
</listener>

<!-- handle AMF requests ([de]serialization) -->
<filter>
<filter-name>AMFMessageFilter</filter-name>
<filter-class>org.granite.messaging.webapp.AMFMessageFilter</filter-
class>
</filter>
<filter-mapping>
<filter-name>AMFMessageFilter</filter-name>
<url-pattern>/graniteamf/*</url-pattern>
</filter-mapping>

<!-- handle AMF requests (execution) -->
<servlet>
<servlet-name>AMFMessageServlet</servlet-name>
<servlet-class>org.granite.messaging.webapp.AMFMessageServlet</
servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AMFMessageServlet</servlet-name>
<url-pattern>/graniteamf/*</url-pattern>
</servlet-mapping>
...



WEB-INF/flex/services-config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<services-config>
<services>
<!--
! Station content service
!-->
<service
id="station-content-granite-service"
class="flex.messaging.services.RemotingService"
messageTypes="flex.messaging.messages.RemotingMessage">
<destination id="stationContentService">
<channels>
<channel ref="graniteamf" />
</channels>
<properties>
<scope>application</scope>
<source>no.popsenteret.service.impl.StationContentService</
source>
</properties>
</destination>
</service>
</services>

<channels>
<!--
! Pull channel
!-->
<channel-definition
id="graniteamf"
class="mx.messaging.channels.AMFChannel">
<endpoint
uri="http://{server.name}:{server.port}/{context.root}/graniteamf/
amf"
class="flex.messaging.endpoints.AMFEndpoint" />
</channel-definition>
</channels>

</services-config>



WEB-INF/granite/granite-config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE granite-config PUBLIC
"-//Granite Data Services//DTD granite-config internal//EN"
"http://www.graniteds.org/public/dtd/2.0.0/granite-config.dtd">

<granite-config scan="true">
</granite-config>


And in applicationContext.xml we have amongst other things:
<graniteds:flex-filter url-pattern="/graniteamf/*" />


Stack trace:

2010-09-13 15:10:31,296 [btpool0-0] ERROR
org.granite.messaging.webapp.AMFMessageServlet - AMF message error
javax.servlet.ServletException: No GraniteContext
(org.granite.messaging.webapp.AMFMessageFilter not configured in
web.xml ?)
at
org.granite.messaging.webapp.AMFMessageServlet.doPost(AMFMessageServlet.java:
50)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
487)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
362)
at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:
216)
at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
181)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
726)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
405)
at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:285)
at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
at
org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:
195)
at
org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:
159)
at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:
141)
at
org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:
90)
at
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:
417)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1084)
at
org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:
77)
at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:
76)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1084)
at
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:
88)
at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:
76)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1084)
at
org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:
113)
at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:
76)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1084)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
360)
at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:
216)
at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
181)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
726)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
405)
at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:
206)
at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:
114)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
505)
at org.mortbay.jetty.HttpConnection
$RequestHandler.content(HttpConnection.java:843)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:
395)
at org.mortbay.thread.QueuedThreadPool
$PoolThread.run(QueuedThreadPool.java:488)

Anyone have any clues?

William Draï

unread,
Sep 13, 2010, 9:19:18 AM9/13/10
to gran...@googlegroups.com
The urlrewrite filter that you are using is causing problems. It must not be mapped to /graniteamf/*.

robinsk

unread,
Sep 14, 2010, 3:08:48 AM9/14/10
to Granite Data Services Forum
Thanks a bunch!
> > org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterI nternal(OpenEntityManagerInViewFilter.java:
> > 113)
> >        at
>
> > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequest Filter.java:
Reply all
Reply to author
Forward
0 new messages