-
15. Re: google app engine and weld
cremersstijn Feb 1, 2010 7:30 PM (in response to cremersstijn)do you know how i can get the full stack trace in google app engine?
-
16. Re: google app engine and weld
pmuir Feb 2, 2010 11:37 AM (in response to cremersstijn)If that is what you get in the logs, I guess you can't. In this case, you can make a small app which just shows this problem (no extra stuff in there please ;-) and then create a JIRA issue for us to take a look.
-
17. Re: google app engine and weld
dan.j.allen Feb 4, 2010 7:28 PM (in response to cremersstijn)Shane has put together a tutorial (part 1) documenting how to create a Google App Engine account and deploy an application using CDI 1.0 (Weld Servlet) and JSF 2.0 (Mojarra).
-
18. Re: google app engine and weld
alin.heyoulin.qq.com Feb 4, 2010 8:09 PM (in response to cremersstijn)I try the latest weld core. When applied interceptor gae throw java.lang.NoClassDefFoundError: sun.reflect.ReflectionFactory is a restricted class. Please see the Google App Engine developer's guide for more details. at com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51) at org.jboss.interceptor.proxy.InterceptorProxyCreatorImpl.createProxyInstance(InterceptorProxyCreatorImpl.java:68) at org.jboss.weld.bean.ManagedBean.applyInterceptors(ManagedBean.java:583) at org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget.produce(ManagedBean.java:249) at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:329) at org.jboss.weld.context.DependentContext.get(DependentContext.java:62) at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:788) at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:814) at org.granite.tide.cdi.CDIServiceContext.findComponent(CDIServiceContext.java:186) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100) at org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflections.java:304) at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:54) at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation(SecureReflectionAccess.java:163) at org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflections.java:298) at org.jboss.weld.bean.proxy.ClientProxyMethodHandler.invoke(ClientProxyMethodHandler.java:112) at org.jboss.weld.util.CleanableMethodHandler.invoke(CleanableMethodHandler.java:43) at org.granite.tide.cdi.CDIServiceContext_$$_javassist_12.findComponent(CDIServiceContext_$$_javassist_12.java) at org.granite.tide.TideServiceInvoker.adjustInvokee(TideServiceInvoker.java:172) at org.granite.messaging.service.ServiceInvoker.invoke(ServiceInvoker.java:96) at org.granite.messaging.amf.process.AMF3MessageProcessor.processRemotingMessage(AMF3MessageProcessor.java:136) at org.granite.messaging.amf.process.AMF3MessageProcessor.process(AMF3MessageProcessor.java:59) at org.granite.messaging.amf.process.AMF0MessageProcessor.process(AMF0MessageProcessor.java:78) at org.granite.messaging.webapp.AMFMessageServlet.doPost(AMFMessageServlet.java:59) 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.granite.messaging.webapp.AMFMessageFilter.doFilter(AMFMessageFilter.java:117) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:51) 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 com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:121) 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.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:352) 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.content(HttpConnection.java:844) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396) at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442) It's jboss-interceptor-1.0.0-CR11
-
19. Re: google app engine and weld
dan.j.allen Feb 4, 2010 8:22 PM (in response to cremersstijn)Please provide a snippet of sample code for others to test. It may come down to the need to file a JIRA.
-
20. Re: google app engine and weld
pmuir Feb 4, 2010 8:23 PM (in response to cremersstijn)Please report this one in https://jira.jboss.org/jira/browse/JBINTER :-)
-
21. Re: google app engine and weld
alin.heyoulin.qq.com Feb 4, 2010 8:37 PM (in response to cremersstijn)And very simple jsf2 example throw HTTP ERROR: 500 java.lang.RuntimeException: by java.lang.NoClassDefFoundError: javassist/util/proxy/ProxyObject RequestURI=/helloworld.jsf Caused by: com.google.common.collect.ComputationException: java.lang.RuntimeException: by java.lang.NoClassDefFoundError: javassist/util/proxy/ProxyObject at com.google.common.collect.MapMaker$StrategyImpl.compute(MapMaker.java:602) at com.google.common.collect.MapMaker$StrategyImpl.compute(MapMaker.java:462) at com.google.common.collect.CustomConcurrentHashMap$ComputingImpl.get(CustomConcurrentHashMap.java:2045) at org.jboss.weld.bean.proxy.ClientProxyProvider.getClientProxy(ClientProxyProvider.java:117) at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:779) at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:814) at org.jboss.weld.bean.builtin.InstanceImpl.get(InstanceImpl.java:75) at org.jboss.weld.conversation.ServletConversationManager.getBeanStore(ServletConversationManager.java:56) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100) at org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflections.java:304) at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:54) at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation(SecureReflectionAccess.java:163) at org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflections.java:298) at org.jboss.weld.bean.proxy.ClientProxyMethodHandler.invoke(ClientProxyMethodHandler.java:112) at org.jboss.weld.util.CleanableMethodHandler.invoke(CleanableMethodHandler.java:43) at org.jboss.weld.conversation.ServletConversationManager_$$_javassist_5.getBeanStore(ServletConversationManager_$$_javassist_5.java) at org.jboss.weld.jsf.WeldPhaseListener.initiateSessionAndConversation(WeldPhaseListener.java:173) at org.jboss.weld.jsf.WeldPhaseListener.beforeRestoreView(WeldPhaseListener.java:118) at org.jboss.weld.jsf.WeldPhaseListener.beforePhase(WeldPhaseListener.java:87) at com.sun.faces.lifecycle.Phase.handleBeforePhase(Phase.java:224) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:95) at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:105) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093) at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:51) 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 com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:121) 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.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:352) 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 org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396) at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442) Correct this just add a patch to org.jboss.weld.util.Proxies.java public ProxyFactory createProxyFactory() { ProxyFactory.classLoaderProvider = new ProxyFactory.ClassLoaderProvider() { public ClassLoader get(ProxyFactory pf) { return Thread.currentThread().getContextClassLoader(); } }; ProxyFactory proxyFactory = new ProxyFactory(); Class<?> superClass = getSuperClass(); if(superClass != null && superClass != Object.class) { proxyFactory.setSuperclass(superClass); } proxyFactory.setInterfaces(getInterfaces()); return proxyFactory; } But sun.reflect.ReflectionFactory is a restricted class error can not be soved still.
-
22. Re: google app engine and weld
alin.heyoulin.qq.com Feb 4, 2010 9:03 PM (in response to cremersstijn)Above issue is relative to http://www.seamframework.org/Community/JavassistClassDefFoundError
Is it weld bug or javasist bug?I don't like put javasist.jar in tomcat server lib.
-
23. Re: google app engine and weld
pmuir Feb 5, 2010 2:43 PM (in response to cremersstijn)I just fixed the TCCL issue with Javassist last night for Servlet containers (nb we don't want to force this onto all containers!).
-
24. Re: google app engine and weld
alin.heyoulin.qq.com Feb 5, 2010 4:30 PM (in response to cremersstijn)I think gae should do catch (NoClassDefFoundError e) { // Support GAE log.warn("@Resource injection not available in simple beans"); // Make Javassist always use the TCCL to load classes ProxyFactory.classLoaderProvider = new ClassLoaderProvider() { public ClassLoader get(ProxyFactory pf) { return Thread.currentThread().getContextClassLoader(); } }; }
-
25. Re: google app engine and weld
pmuir Feb 5, 2010 6:07 PM (in response to cremersstijn)Please look at my fix :-)
-
26. Re: google app engine and weld
alin.heyoulin.qq.com Feb 5, 2010 6:15 PM (in response to cremersstijn)Sorry,i now update the latest vision :-)