I had the same problem as you. I found a new Lib called Flexjson, it
works great, easier to understand, and works just fine with the latest
build.

https://sourceforge.net/projects/flexjson/

I have make some suggestions for enhancements, and one fix, but
overall I found this lib to be much better than Jackson.

Plus, if you have a good separation of dependencies in your code, you
should only have to change one place in code to use the new lib.

..Geoffrey

On Oct 27, 7:00 am, thol01 <[email protected]> wrote:
> Hi
>
> I 've a app that work perfect on the local Development App Engine (SDK
> 1.2.6). I've use Spring to convertjsonto spring beans thru springs
> org.springframework.web.servlet.view.json.MappingJacksonJsonView.
>
> On dev server it fine but deployed to Google App Engine on the cloud I
> get this error:
>
> Nested in org.springframework.web.util.NestedServletException: Request
> processing failed; nested exception is java.lang.NullPointerException:
> java.lang.NullPointerException
>         at
> com.google.apphosting.runtime.security.shared.RuntimeVerifier.isInspectable
> (RuntimeVerifier.java:302)
>         at
> com.google.apphosting.runtime.security.shared.intercept.java.lang.Class_.ge 
> tEnclosingMethod
> (Class_.java:237)
>         at org.codehaus.jackson.map.util.ClassUtil.isLocalType(ClassUtil.java:
> 88)
>         at
> org.codehaus.jackson.map.deser.BeanDeserializerFactory.isPotentialBeanType
> (BeanDeserializerFactory.java:613)
>         at
> org.codehaus.jackson.map.deser.BeanDeserializerFactory.createBeanDeserializ er
> (BeanDeserializerFactory.java:61)
>         at
> org.codehaus.jackson.map.deser.StdDeserializerProvider._createDeserializer
> (StdDeserializerProvider.java:248)
>         at
> org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCacheValue 
> Deserializer
> (StdDeserializerProvider.java:181)
>         at
> org.codehaus.jackson.map.deser.StdDeserializerProvider.findValueDeserialize r
> (StdDeserializerProvider.java:100)
>         at org.codehaus.jackson.map.ObjectMapper._findRootDeserializer
> (ObjectMapper.java:1069)
>         at org.codehaus.jackson.map.ObjectMapper._readMapAndClose
> (ObjectMapper.java:1002)
>         at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:
> 818)
>         at
> org.springframework.http.converter.json.MappingJacksonHttpMessageConverter. 
> readInternal
> (MappingJacksonHttpMessageConverter.java:104)
>         at
> org.springframework.http.converter.AbstractHttpMessageConverter.read
> (AbstractHttpMessageConverter.java:84)
>         at
> org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolv 
> eRequestBody
> (HandlerMethodInvoker.java:485)
>         at
> org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolv 
> eHandlerArguments
> (HandlerMethodInvoker.java:276)
>         at
> org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invoke 
> HandlerMethod
> (HandlerMethodInvoker.java:156)
>         at
> org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapt 
> er.invokeHandlerMethod
> (AnnotationMethodHandlerAdapter.java:378)
>         at
> org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapt 
> er.handle
> (AnnotationMethodHandlerAdapter.java:366)
>         at org.springframework.web.servlet.DispatcherServlet.doDispatch
> (DispatcherServlet.java:781)
>         at org.springframework.web.servlet.DispatcherServlet.doService
> (DispatcherServlet.java:726)
>         at org.springframework.web.servlet.FrameworkServlet.processRequest
> (FrameworkServlet.java:636)
>         at org.springframework.web.servlet.FrameworkServlet.doPost
> (FrameworkServlet.java:556)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
>         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
> 487)
>         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> (ServletHandler.java:1093)
>         at
> org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal
> (HiddenHttpMethodFilter.java:71)
>         at org.springframework.web.filter.OncePerRequestFilter.doFilter
> (OncePerRequestFilter.java:76)
>         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> (ServletHandler.java:1084)
>         at org.springframework.security.web.FilterChainProxy
> $VirtualFilterChain.doFilter(FilterChainProxy.java:344)
>         at
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor 
> .invoke
> (FilterSecurityInterceptor.java:110)
>         at
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor 
> .doFilter
> (FilterSecurityInterceptor.java:84)
>         at org.springframework.security.web.FilterChainProxy
> $VirtualFilterChain.doFilter(FilterChainProxy.java:356)
>         at
> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter
> (ExceptionTranslationFilter.java:98)
>         at org.springframework.security.web.FilterChainProxy
> $VirtualFilterChain.doFilter(FilterChainProxy.java:356)
>         at
> org.springframework.security.web.session.SessionManagementFilter.doFilter
> (SessionManagementFilter.java:95)
>         at org.springframework.security.web.FilterChainProxy
> $VirtualFilterChain.doFilter(FilterChainProxy.java:356)
>         at
> org.springframework.security.web.authentication.AnonymousAuthenticationFilt 
> er.doFilter
> (AnonymousAuthenticationFilter.java:110)
>         at org.springframework.security.web.FilterChainProxy
> $VirtualFilterChain.doFilter(FilterChainProxy.java:356)
>         at
> org.springframework.security.web.servletapi.SecurityContextHolderAwareReque 
> stFilter.doFilter
> (SecurityContextHolderAwareRequestFilter.java:55)
>         at org.springframework.security.web.FilterChainProxy
> $VirtualFilterChain.doFilter(FilterChainProxy.java:356)
>         at
> org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFil 
> ter
> (RequestCacheAwareFilter.java:36)
>         at org.springframework.security.web.FilterChainProxy
> $VirtualFilterChain.doFilter(FilterChainProxy.java:356)
>         at
> org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter
> (BasicAuthenticationFilter.java:177)
>         at org.springframework.security.web.FilterChainProxy
> $VirtualFilterChain.doFilter(FilterChainProxy.java:356)
>         at
> org.springframework.security.web.context.SecurityContextPersistenceFilter.d 
> oFilter
> (SecurityContextPersistenceFilter.java:80)
>         at org.springframework.security.web.FilterChainProxy
> $VirtualFilterChain.doFilter(FilterChainProxy.java:356)
>         at org.springframework.security.web.FilterChainProxy.doFilter
> (FilterChainProxy.java:150)
>         at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate
> (DelegatingFilterProxy.java:237)
>         at org.springframework.web.filter.DelegatingFilterProxy.doFilter
> (DelegatingFilterProxy.java:167)
>         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> (ServletHandler.java:1084)
>         at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter
> (SaveSessionFilter.java:35)
>         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> (ServletHandler.java:1084)
>         at
> com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter
> (TransactionCleanupFilter.java:43)
>         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:712)
>         at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
> 405)
>         at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle
> (AppVersionHandlerMap.java:238)
>         at org.mortbay.jetty.handler.HandlerWrapper.handle
> (HandlerWrapper.java:139)
>         at org.mortbay.jetty.Server.handle(Server.java:313)
>         at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
> 506)
>         at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete
> (HttpConnection.java:830)
>         at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable
> (RpcRequestParser.java:76)
>         at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
>         at
> com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceReques t
> (JettyServletEngineAdapter.java:139)
>         at com.google.apphosting.runtime.JavaRuntime.handleRequest
> (JavaRuntime.java:239)
>         at com.google.apphosting.base.RuntimePb$EvaluationRuntime
> $6.handleBlockingRequest(RuntimePb.java:5135)
>         at com.google.apphosting.base.RuntimePb$EvaluationRuntime
> $6.handleBlockingRequest(RuntimePb.java:5133)
>         at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest
> (BlockingApplicationHandler.java:24)
>         at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:
> 363)
>         at com.google.net.rpc.impl.Server$2.run(Server.java:814)
>         at com.google.tracing.LocalTraceSpanRunnable.run
> (LocalTraceSpanRunnable.java:56)
>         at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan
> (LocalTraceSpanBuilder.java:516)
>         at com.google.net.rpc.impl.Server.startRpc(Server.java:769)
>         at com.google.net.rpc.impl.Server.processRequest(Server.java:351)
>         at com.google.net.rpc.impl.ServerConnection.messageReceived
> (ServerConnection.java:437)
>         at com.google.net.rpc.impl.RpcConnection.parseMessages
> (RpcConnection.java:319)
>         at com.google.net.rpc.impl.RpcConnection.dataReceived
> (RpcConnection.java:290)
>         at com.google.net.as
>
> Is the jackson parser using any disallowed api?
>
> Best Regards
> Thomas

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to