Hello.. Google Appengine now supports JAXB, but in the latest Release But javax.annotation.Resource is not on the Whitelist. As CXF uses @Resource I am stuck with my own attempts to get CXF JAX-RS woring on GAE. See my http://groups.google.com/group/google-appengine-java/browse_thread/thread/a4f32561f7322665# post on the GAE Group on this topic. cheers Ralf
Vinicius Carvalho wrote: > > Hello there! I'm trying to get CXF working on Appengine, but I could > not found a way. I just need to user JAX-RS, and since AppEngine does > not support JAXB I'm using it without any JAXB jars or references. > Here's my beans.xml: > > <jaxrs:server id="locationService" address="/location"> > <jaxrs:serviceBeans> > <ref bean="myService"/> > </jaxrs:serviceBeans> > > <jaxrs:providers> > <bean class="org.apache.cxf.jaxrs.provider.AegisElementProvider"/> > <bean class="org.apache.cxf.jaxrs.provider.AegisJSONProvider"/> > </jaxrs:providers> > </jaxrs:server> > > I've also modified cxf.xml removing: > > <bean id="org.apache.cxf.wsdl.WSDLManager" > class="org.apache.cxf.wsdl11.WSDLManagerImpl"> > <property name="bus" ref="cxf"/> > </bean> > > <bean id="org.apache.cxf.transports.http.QueryHandlerRegistry" > class="org.apache.cxf.transport.http.QueryHandlerRegistryImpl"> > <property name="bus" ref="cxf"/> > <property name="queryHandlers"> > <list> > <bean > class="org.apache.cxf.transport.http.WSDLQueryHandler"> > <property name="bus" ref="cxf"/> > </bean> > </list> > </property> > </bean> > > Since those seemed to be using jaxb classes. > > Well, after deploying this modified version of CXF I still get this error: > > org.springframework.web.context.ContextLoader > initWebApplicationContext: Context initialization failed > org.springframework.beans.factory.BeanCreationException: Error > creating bean with name 'locationService': Invocation of init method > failed; nested exception is java.lang.ExceptionInInitializerError > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1337) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) > at java.security.AccessController.doPrivileged(Native Method) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) > at > org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) > at > org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:221) > at > org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) > at > org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) > at > org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) > at > org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429) > at > org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729) > at > org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381) > at > org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255) > at > org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199) > at > org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) > at > org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:530) > at org.mortbay.jetty.servlet.Context.startContext(Context.java:135) > at > org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218) > at > org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500) > at > org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448) > at > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40) > 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:127) > 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.async.Connection.handleReadEvent(Connection.java:436) > at > com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java:762) > at > com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java:207) > at com.google.net.async.EventDispatcher.loop(EventDispatcher.java:101) > at > com.google.net.rpc.RpcService.runUntilServerShutdown(RpcService.java:251) > at > com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run(JavaRuntime.java:396) > at java.lang.Thread.run(Unknown Source) > Caused by: java.lang.ExceptionInInitializerError > at > org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean.setupFactory(AbstractJAXRSFactoryBean.java:231) > at > org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:96) > 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(Method.java:40) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1413) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1374) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1334) > ... 44 more > Caused by: java.lang.SecurityException: Unable to get members for > class org.apache.cxf.jaxrs.provider.JAXBElementProvider > at > com.google.appengine.runtime.Request.process-8835d92e4daee7d0(Request.java) > at java.lang.Class.getMethods(Class.java:180) > at > org.apache.cxf.jaxrs.model.AbstractResourceInfo.initContextSetterMethods(AbstractResourceInfo.java:113) > at > org.apache.cxf.jaxrs.model.AbstractResourceInfo.<init>(AbstractResourceInfo.java:61) > at org.apache.cxf.jaxrs.model.ProviderInfo.<init>(ProviderInfo.java:27) > at > org.apache.cxf.jaxrs.provider.ProviderFactory.setProviders(ProviderFactory.java:298) > at > org.apache.cxf.jaxrs.provider.ProviderFactory.<clinit>(ProviderFactory.java:73) > ... 53 more > > > Why is JAXBElementProvider still being loaded if I am using > AegisElementProvider? > > Regards > > -- View this message in context: http://old.nabble.com/CXF-on-AppEngine-tp25884251p27000105.html Sent from the cxf-user mailing list archive at Nabble.com.
