If it's ture,I can't use btrace on Resin 3.1.8. I will read the resin class loader source to confirm it. Thanks.
On Fri, Apr 1, 2011 at 2:32 PM, Jaroslav Bachorik <[email protected]>wrote: > Ok, the culprit is the compiled script class - HomeTracer$0. This > class is loaded by the bootstrap class loader - it seems as the > EnvironmentClassLoader prevents delgating to the bootstrap class > loader :( > > -JB- > > On Mar 31, 5:13 am, "[email protected]" <[email protected]> > wrote: > > The Spring is not on the system classpath,it's on the WEB-INF/lib. > > > > I copy the Spring libs to the ${resin.home}/ext-webapp-lib and remove > them > > from the WEB-INF/lib,the exception stacktrace still there,can't solve the > > problem. > > > > Thanks. > > > > > > > > > > > > > > > > > > > > On Thu, Mar 31, 2011 at 1:08 AM, Kirk <[email protected]> wrote: > > > Ok, another question. > > > > > Is Spring on the system classpath? Or do you have Resin load it? > > > > > It looks like BTrace might be using the context classloader to load > stuff > > > into Resin's classloader while Spring on the system classpath can't > look > > > down into that classloader. Try having Resin load Spring to see if that > > > resolves the visibility issue. > > > > > Regards, > > > Kirk > > > > > On Mar 30, 2011, at 6:09 PM, [email protected] wrote: > > > > > The HomeTracer is my btrace script: > > > > > import com.sun.btrace.annotations.*; > > > > > import static com.sun.btrace.BTraceUtils.*; > > > > > @BTrace > > > public class HomeTracer { > > > @TLS > > > static long indexStartTime; > > > > > @OnMethod(clazz = "com.test.HomeController", method = "index", > location > > > = @Location(value = Kind.ENTRY)) public static void onEntryIndex() { > > > indexStartTime = timeNanos(); > > > } > > > > > @OnMethod(clazz = "com.test.HomeController", method = "index", > location > > > = @Location(value = Kind.RETURN)) > > > public static void onExitIndex() { > > > print(strcat("home.index ns", str((timeNanos() - > > > indexStartTime)))); > > > } > > > } > > > > > After the btrace attched to the jvm ,resin will output the following > > > exception stacktrace when I visihttp://localhost:8080/home. > > > The same btrace script runs well at the Resin 4.0. > > > Maybe the classloader of resin has different behavior between 3.1.8 > and > > > 4.0? > > > > > org.springframework.web.util.NestedServletException: Handler processing > > > failed; nested exception is java.lang.NoClassDefFoundError: > HomeTracer$0 > > > at > > > > org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServ > let.java:839) > > > at > > > > org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServl > et.java:719) > > > at > > > > org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkSe > rvlet.java:644) > > > at > > > > org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.jav > a:549) > > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:114) > > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:91) > > > at > > > > com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.j > ava:103) > > > Caused by: java.lang.NoClassDefFoundError: HomeTracer$0 > > > at > > > > com.test.HomeController.$btrace$HomeTracer$0$onEntryIndex(HomeController.ja > va) > > > at com.test.HomeController.index(HomeController.java) > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > > at > > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:3 > 9) > > > at > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp > l.java:25) > > > at java.lang.reflect.Method.invoke(Method.java:597) > > > at > > > > org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invoke > HandlerMethod(HandlerMethodInvoker.java:176) > > > at > > > > org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapt > er.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426) > > > at > > > > org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapt > er.handle(AnnotationMethodHandlerAdapter.java:414) > > > at > > > > org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServ > let.java:790) > > > ... 18 more > > > Caused by: java.lang.ClassNotFoundException: HomeTracer$0 in > > > EnvironmentClassLoader[web-app:http://localhost:8080] > > > at > > > > com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1224 > ) > > > at > > > > com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1203 > ) > > > > > On Wed, Mar 30, 2011 at 12:32 PM, Kirk <[email protected]> > wrote: > > > > >> On Mar 29, 2011, at 10:52 PM, Jaroslav Bachorik wrote: > > > > >> > Which class can not be found? A BTrace internal class or a custom > type > > >> > you use in the BTrace script? > > > > >> I suspect that BTrace is picking up the system classloader instead of > the > > >> context classloader but I need to see the stacktrace to confirm. > > > > >> Kirk > > > > >> -- > > >> You received this message because you are subscribed to the Google > Groups > > >> "The Java Posse" 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/javaposse?hl=en. > > > > > -- > > > d0ngd0ng > > > > > -- > > > You received this message because you are subscribed to the Google > Groups > > > "The Java Posse" 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/javaposse?hl=en. > > > > > -- > > > You received this message because you are subscribed to the Google > Groups > > > "The Java Posse" 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/javaposse?hl=en. > > > > -- > > d0ngd0ng > > -- > You received this message because you are subscribed to the Google Groups > "The Java Posse" 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/javaposse?hl=en. > > -- d0ngd0ng -- You received this message because you are subscribed to the Google Groups "The Java Posse" 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/javaposse?hl=en.
