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 visi http://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(DispatcherServlet.java:839)
> at
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
> at
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
> at
> org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java: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.java:103)
> Caused by: java.lang.NoClassDefFoundError: HomeTracer$0
> at
> com.test.HomeController.$btrace$HomeTracer$0$onEntryIndex(HomeController.java)
> at com.test.HomeController.index(HomeController.java)
> 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
> org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
> at
> org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)
> at
> org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)
> at
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.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.