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.

Reply via email to