Hi Nikolaos, looks like a class loading issue to me. behaves like you have duplicated classes (the action found twice) and/or 2 stripes versions on your classpath (the NoSuchMethod). Packaging problem ? Does this happen in glassfish only ? Or can you reproduce in tomcat ?
The best to allow us to help would be to create a web test case. You can use the existing example application for that: it includes web tests and all the plumbing needed to run them. You could add your beans/jsps to the app and write a canoo webtest that reproduces the issue. Otherwise it's quite hard to debug... Cheers Remi 2010/10/16, Nikolaos Giannopoulos <[email protected]>: > Hi, > > I have run a number of tests - back and forth - cleaning and rebuilding > a project from scratch - and have found the following: > > *1.5.3* - WORKS 100% > *1.5.3.1* (essentially a home grown 1.5.3 + DynamicMappingFilter code > from 1.5.x branch) - WORKS 100% > *1.5.4 Snapshot (*downloaded from project URL) - Does NOT Work Properly > (See below) > *1.5.4 Snapshot *(built myself) - Does NOT Work Properly (See below) > > Almost always the exception I included in my initial post on this thread > would fire so I decided to remove the custom MyActionResolver (which I > had included verbatim from Freddy's book and also pasted in my initial > post on this thread). After removal the exception still occurs except > now the code executed is 100% Stripes (see 1st exception below). At 1st > I thought perhaps I had the wrong Stripes jar or something but I have > gone back and forth at least 5 times and with the 1.5.3 or 1.5.3.1 > Stripes this issue never occurs. I have un-deployed, cleaned the > Eclipse project, done a Maven clean, an Eclipse clean, a Maven package, > a deployment and finally fired up GlassFish each iteration... just to > make sure everything is FULLY on the up and up and 1.5.4 tests fail. > > The other exception that occurs at times is the 2nd exception listed > below. I have no idea why Stripes would think that there are 2 > ActionBeans with the same URL binding because there is only 1. What is > bizarre is that I have narrowed down this exception to occur if when I > startup my app I go to the /design URI first however if I hit the / URI > first then /design the issue does not occur. Again this issue only > occurs with the 1.5.4 tests. > > I should point out that both of these exceptions occur on pages > involving nested layouts. > > Has anyone else extensively tested 1.5.4 Snapshot with Nested Layouts > and found any issues???? > > ANY ideas anyone... 1.5.4 Snapshot appears unusable for me. > > --Nikolaos > > > > [#|2010-10-16T00:17:19.867-0400|INFO|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=25;_ThreadName=http-thread-pool-8080-(1);|[00:17:19,859] > WARN net.sourceforge.stripes.exception.DefaultExceptionHandler.warn - > Unhandled exception caught by the Stripes default exception handler. > java.lang.NoSuchMethodError: > net.sourceforge.stripes.controller.UrlBindingFactory.getInstance()Lnet/sourceforge/stripes/controller/UrlBindingFactory; > at > net.sourceforge.stripes.controller.NameBasedActionResolverHelper.getActionBeanType(NameBasedActionResolverHelper.java:186) > at > net.sourceforge.stripes.controller.NameBasedActionResolver.getActionBeanType(NameBasedActionResolver.java) > at > net.sourceforge.stripes.controller.DynamicMappingFilter$2.doFilter(DynamicMappingFilter.java:423) > at > net.sourceforge.stripes.controller.StripesFilter.doFilter(StripesFilter.java:247) > at > net.sourceforge.stripes.controller.DynamicMappingFilter.doFilter(DynamicMappingFilter.java:418) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) > at > org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:164) > at > org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141) > at > org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90) > at > org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:417) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641) > at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97) > at > com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185) > at > org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226) > at > com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165) > at > com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791) > at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693) > at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954) > at > com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170) > at > com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135) > at > com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102) > at > com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88) > at > com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76) > at > com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53) > at > com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) > at com.sun.grizzly.ContextTask.run(ContextTask.java:69) > at > com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330) > at > com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309) > at java.lang.Thread.run(Thread.java:637) > |#] > > ----------------------------------------------------------------------------------------------- > ----------------------------------------------------------------------------------------------- > > [#|2010-10-15T23:52:53.222-0400|WARNING|glassfish3.0.1|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=25;_ThreadName=http-thread-pool-8080-(2);|ApplicationDispatcher[/ui-web] > PWC1231: Servlet.service() for servlet jsp threw exception > net.sourceforge.stripes.exception.UrlBindingConflictException: The path > /app/sel/lang cannot be mapped to a single ActionBean because multiple > URL bindings match it. The matching URL bindings are [/app/sel/lang, > /app/sel/lang]. If you generated the URL using the Stripes tag library > (stripes:link, stripes:url, stripes:form, etc.) then you must embed > enough stripes:param tags within the parent tag to produce a URL that > maps to exactly one of the indicated matches. If you generated the URL > by some other means, then you must embed enough information in the URL > to achieve the same end. > at > net.sourceforge.stripes.controller.UrlBindingFactory.getBindingPrototype(UrlBindingFactory.java:144) > at > net.sourceforge.stripes.controller.AnnotatedClassActionResolver.getUrlBindingFromPath(AnnotatedClassActionResolver.java:190) > at > org.lightagents.ui.stripes.extensions.MyActionResolver.getUrlBindingFromPath(MyActionResolver.java:50001) > at > net.sourceforge.stripes.tag.FormTag.getActionBeanUrlBinding(FormTag.java:100) > at net.sourceforge.stripes.tag.FormTag.getActionBean(FormTag.java:360) > at > net.sourceforge.stripes.tag.InputTagSupport.getActionBean(InputTagSupport.java:392) > at > net.sourceforge.stripes.tag.InputTagSupport.loadErrors(InputTagSupport.java:350) > at > net.sourceforge.stripes.tag.InputTagSupport.getFieldErrors(InputTagSupport.java:366) > at > net.sourceforge.stripes.tag.InputTagSupport.doStartTag(InputTagSupport.java:409) > at > org.apache.jsp.WEB_002dINF.jsp.page.home_jsp._jspx_meth_s_select_0(home_jsp.java > from :344) > at > org.apache.jsp.WEB_002dINF.jsp.page.home_jsp._jspx_meth_s_form_0(home_jsp.java > from :301) > at > org.apache.jsp.WEB_002dINF.jsp.page.home_jsp._jspx_meth_s_layout$1component_0(home_jsp.java > from :227) > at > org.apache.jsp.WEB_002dINF.jsp.page.home_jsp._jspx_meth_s_layout$1render_0(home_jsp.java > from :189) > at > org.apache.jsp.WEB_002dINF.jsp.page.home_jsp._jspService(home_jsp.java > from :115) > at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:109) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) > at > org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:406) > at > org.apache.jasper.servlet.JspServlet._serviceJspFile(JspServlet.java:483) > at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java) > at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:373) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) > at > org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) > at > net.sourceforge.stripes.controller.DynamicMappingFilter.doFilter(DynamicMappingFilter.java:397) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) > at > org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:820) > at > org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) > at > org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:517) > at > org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:488) > at > org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:379) > at > org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:336) > at > org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:314) > at > net.sourceforge.stripes.action.ForwardResolution.execute(ForwardResolution.java:110) > at > net.sourceforge.stripes.controller.DispatcherHelper$7.intercept(DispatcherHelper.java:508) > at > net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:158) > at > net.sourceforge.stripes.controller.HttpCacheInterceptor.intercept(HttpCacheInterceptor.java:99) > at > net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:155) > at > net.sourceforge.stripes.controller.BeforeAfterMethodInterceptor.intercept(BeforeAfterMethodInterceptor.java:113) > at > net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:155) > at > net.sourceforge.stripes.controller.ExecutionContext.wrap(ExecutionContext.java:74) > at > net.sourceforge.stripes.controller.DispatcherHelper.executeResolution(DispatcherHelper.java:502) > at > net.sourceforge.stripes.controller.DispatcherServlet.executeResolution(DispatcherServlet.java:286) > at > net.sourceforge.stripes.controller.DispatcherServlet.service(DispatcherServlet.java:170) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) > at > net.sourceforge.stripes.controller.DynamicMappingFilter$2.doFilter(DynamicMappingFilter.java:431) > at > net.sourceforge.stripes.controller.StripesFilter.doFilter(StripesFilter.java:247) > at > net.sourceforge.stripes.controller.DynamicMappingFilter.doFilter(DynamicMappingFilter.java:418) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) > at > org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:164) > at > org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141) > at > org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90) > at > org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:417) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641) > at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97) > at > com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185) > at > org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226) > at > com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165) > at > com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791) > at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693) > at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954) > at > com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170) > at > com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135) > at > com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102) > at > com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88) > at > com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76) > at > com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53) > at > com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) > at com.sun.grizzly.ContextTask.run(ContextTask.java:69) > at > com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330) > at > com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309) > at java.lang.Thread.run(Thread.java:637) > |#] > > > > Freddy Daoud wrote: >> I built from the source of build 1305 from branches/1.5.x >> and did not get this error. What could the problem be? >> >> Freddy >> >> On Sat, 09 Oct 2010 23:27:23 -0400, "Nikolaos Giannopoulos" >> <[email protected]> said: >> >>> Hmmm... this one is really bizarre. >>> >>> I even tried compiling my own 1.5.4 Snapshot and the problem persists. >>> Switched back to 1.5.3 and the problem went away. Back to 1.5.4 Snapshot >>> and the problem again. And back and back again. >>> >>> The exception and MyActionResolver are provided below. >>> >>> At this point I can't test 1.5.4 Snapshot. >>> >>> Ideas anyone???? >>> >>> --Nikolaos >>> >>> >>> >>> Nikolaos Giannopoulos wrote: >>> >>>> Hi, >>>> >>>> I finally had the time to switch to 1.5.4 Snapshot (once again) and give >>>> >>>> it a spin after all the great updates / commits. >>>> >>>> However I get the following error early on in request processing. Any >>>> ideas anyone? >>>> >>>> I have done a Maven clean... an Eclipse clean... at least a 1/2 dozen >>>> times each. All my tests pass but I can't get glassfish going. It all >>>> worked fine on 1.5.3. >>>> >>>> Anyone have any clue. >>>> >>>> --Nikolaos >>>> >>>> >>>> [#|2010-10-09T21:16:44.219-0400|INFO|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=26;_ThreadName=http-thread-pool-8080-(2);|[21:16:44,215] >>>> >>>> WARN net.sourceforge.stripes.exception.DefaultExceptionHandler.warn - >>>> Unhandled exception caught by the Stripes default exception handler. >>>> java.lang.NoSuchMethodError: >>>> net.sourceforge.stripes.controller.UrlBindingFactory.getInstance()Lnet/sourceforge/stripes/controller/UrlBindingFactory; >>>> at >>>> net.sourceforge.stripes.controller.NameBasedActionResolverHelper.getActionBeanType(NameBasedActionResolverHelper.java:186) >>>> at >>>> net.sourceforge.stripes.controller.NameBasedActionResolver.getActionBeanType(NameBasedActionResolver.java) >>>> at >>>> org.lightagents.ui.stripes.extensions.MyActionResolver.getActionBeanType(MyActionResolver.java:50001) >>>> at >>>> net.sourceforge.stripes.controller.DynamicMappingFilter$2.doFilter(DynamicMappingFilter.java:424) >>>> at >>>> net.sourceforge.stripes.controller.StripesFilter.doFilter(StripesFilter.java:247) >>>> at >>>> net.sourceforge.stripes.controller.DynamicMappingFilter.doFilter(DynamicMappingFilter.java:418) >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) >>>> at >>>> org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:164) >>>> at >>>> org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141) >>>> at >>>> org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90) >>>> at >>>> org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:417) >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215) >>>> at >>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277) >>>> at >>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188) >>>> at >>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641) >>>> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97) >>>> at >>>> com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85) >>>> at >>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185) >>>> at >>>> org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325) >>>> at >>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226) >>>> at >>>> com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165) >>>> at >>>> com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791) >>>> at >>>> com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693) >>>> at >>>> com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954) >>>> at >>>> com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170) >>>> at >>>> com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135) >>>> at >>>> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102) >>>> at >>>> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88) >>>> at >>>> com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76) >>>> at >>>> com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53) >>>> at >>>> com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) >>>> at com.sun.grizzly.ContextTask.run(ContextTask.java:69) >>>> at >>>> com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330) >>>> at >>>> com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309) >>>> at java.lang.Thread.run(Thread.java:637) >>>> |#] >>>> >>>> >>>> >>>> public class MyActionResolver extends NameBasedActionResolver { >>>> >>>> >>>> @Override >>>> protected String getBindingSuffix() { >>>> return ""; >>>> } >>>> >>>> @Override >>>> protected String getUrlBinding(String actionBeanName) { >>>> String result = super.getUrlBinding(actionBeanName); >>>> // COMMENTED OUT: As I don't think it necessary to force lower >>>> case as all URLs in app are lower case >>>> // result = convertToLowerCaseWithUnderscores(result); >>>> return result; >>>> } >>>> } >>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> Beautiful is writing same markup. Internet Explorer 9 supports >>>> standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3. >>>> Spend less time writing and rewriting code and more time creating great >>>> experiences on the web. Be a part of the beta today. >>>> http://p.sf.net/sfu/beautyoftheweb >>>> _______________________________________________ >>>> Stripes-development mailing list >>>> [email protected] >>>> https://lists.sourceforge.net/lists/listinfo/stripes-development >>>> >>>> >>>> > > -- Envoyé avec mon mobile ------------------------------------------------------------------------------ Download new Adobe(R) Flash(R) Builder(TM) 4 The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly Flex(R) Builder(TM)) enable the development of rich applications that run across multiple browsers and platforms. Download your free trials today! http://p.sf.net/sfu/adobe-dev2dev _______________________________________________ Stripes-development mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/stripes-development
