Hi, I've run into an issue with JAXB on GAE. I have set up a simple project using Jersey to expose a RESTful web service and am using JAXB for marshalling/unmarshalling. The project runs fine in my local eclipse environment but when I upload to GAE and send a request to the web service I am getting a JAXB exception (see stack trace below). I am using the latest version of JAXB and the latest version of GAE SDK. According to the white list JAXB should now be supported so I'm not sure what's going on. Any help to resolve this issue would be greatly appreciated.
Uncaught exception from servlet java.lang.ExceptionInInitializerError at com.sun.xml.bind.v2.runtime.reflect.opt.AccessorInjector.prepare(AccessorInjector.java: 79) at com.sun.xml.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.get(OptimizedAccessorFactory.java: 165) at com.sun.xml.bind.v2.runtime.reflect.Accessor $FieldReflection.optimize(Accessor.java:256) at com.sun.xml.bind.v2.runtime.property.ArrayProperty.<init>(ArrayProperty.java: 65) at com.sun.xml.bind.v2.runtime.property.ArrayERProperty.<init>(ArrayERProperty.java: 84) at com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.<init>(ArrayElementProperty.java: 96) at com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.<init>(ArrayElementNodeProperty.java: 58) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Constructor.java:33) at com.sun.xml.bind.v2.runtime.property.PropertyFactory.create(PropertyFactory.java: 124) at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.<init>(ClassBeanInfoImpl.java: 179) at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java: 515) at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java: 330) at com.sun.xml.bind.v2.runtime.JAXBContextImpl $JAXBContextBuilder.build(JAXBContextImpl.java:1140) at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java: 154) at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java: 121) at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java: 202) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:159) at javax.xml.bind.ContextFinder.find(ContextFinder.java:311) at javax.xml.bind.JAXBContext.newInstance(Unknown Source) at javax.xml.bind.JAXBContext.newInstance(Unknown Source) at javax.xml.bind.JAXBContext.newInstance(Unknown Source) at com.sun.jersey.server.impl.wadl.WadlApplicationContextImpl.<init>(WadlApplicationContextImpl.java: 66) at com.sun.jersey.server.impl.wadl.WadlFactory.init(WadlFactory.java: 94) at com.sun.jersey.server.impl.application.WebApplicationImpl.initWadl(WebApplicationImpl.java: 1207) at com.sun.jersey.server.impl.application.WebApplicationImpl.processRootResources(WebApplicationImpl.java: 1106) at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java: 912) at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java: 589) at com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java: 403) at com.sun.jersey.spi.container.servlet.ServletContainer $InternalWebComponent.initiate(ServletContainer.java:252) at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java: 550) at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java: 201) at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java: 307) at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java: 470) at javax.servlet.GenericServlet.init(GenericServlet.java:215) at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java: 440) at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java: 263) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java: 50) at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java: 685) at org.mortbay.jetty.servlet.Context.startContext(Context.java:140) at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java: 1250) at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java: 517) at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java: 467) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java: 50) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java: 191) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java: 168) at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java: 123) at com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java: 243) at com.google.apphosting.base.RuntimePb$EvaluationRuntime $6.handleBlockingRequest(RuntimePb.java:5485) at com.google.apphosting.base.RuntimePb$EvaluationRuntime $6.handleBlockingRequest(RuntimePb.java:5483) at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java: 24) at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java: 398) at com.google.net.rpc.impl.Server$2.run(Server.java:852) at com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java: 56) at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java: 536) at com.google.net.rpc.impl.Server.startRpc(Server.java:807) at com.google.net.rpc.impl.Server.processRequest(Server.java:369) at com.google.net.rpc.impl.ServerConnection.messageReceived(ServerConnection.java: 442) 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.async.Connection.handleReadEvent(Connection.java: 474) at com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java: 831) at com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java: 207) at com.google.net.async.EventDispatcher.loop(EventDispatcher.java: 103) at com.google.net.rpc.RpcService.runUntilServerShutdown(RpcService.java: 251) at com.google.apphosting.runtime.JavaRuntime $RpcRunnable.run(JavaRuntime.java:404) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.SecurityException: java.lang.IllegalAccessException: Reflection is not allowed on protected final java.lang.Class java.lang.ClassLoader.findLoadedClass(java.lang.String) at com.google.appengine.runtime.Request.process- f4b7af1ef0914e04(Request.java) at com.sun.xml.bind.v2.runtime.reflect.opt.Injector $1.run(Injector.java:156) at com.sun.xml.bind.v2.runtime.reflect.opt.Injector $1.run(Injector.java:151) at java.security.AccessController.doPrivileged(AccessController.java: 34) at com.sun.xml.bind.v2.runtime.reflect.opt.Injector.<clinit>(Injector.java: 150) ... 73 more Caused by: java.lang.IllegalAccessException: Reflection is not allowed on protected final java.lang.Class java.lang.ClassLoader.findLoadedClass(java.lang.String) ... 77 more -- 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.