Re: Cactus 1.7.2 setting the wrong locale?

"Matt Raible" <[email protected]>
Newsgroups gmane.comp.jakarta.cactus.user
Message-ID <[email protected]>
Here's my Cactus test:

public class UserCactusTest extends ServletTestCase {
    private UserController list = new UserController();
    private UserFormController form = new UserFormController();

    protected void setUp() throws Exception {
        super.setUp();
        ApplicationContext ctx =
            WebApplicationContextUtils
                .getRequiredWebApplicationContext(
                    session.getServletContext());
        UserManager userManager =
            (UserManager) ctx.getBean("userManager");
        list.setUserManager(userManager);
        form.setUserManager(userManager);
        // needed to prevent NPE with getMessageSourceAccessor()
        form.setApplicationContext(ctx);
    }

    public void beginAddUser(WebRequest wRequest) {
        wRequest.addParameter("firstName", "Dion", "post");
        wRequest.addParameter("lastName", "Almaer", "post");
    }

    public void testAddUser() throws Exception {
        form.handleRequest(request, response);
        assertNotNull(request.getSession().getAttribute("message"));
    }

    public void testUserList() throws Exception {
        ModelAndView mav = list.handleRequest(request, response);
        Map m = mav.getModel();
        assertNotNull(m.get("users"));
        assertEquals("userList", mav.getViewName());
    }
}

Full stack trace (you asked for it ;-):

   [cactus] Testsuite: org.appfuse.web.UserCactusTest
   [cactus] Tests run: 2, Failures: 0, Errors: 1, Time elapsed: 0.551 sec

   [cactus] ------------- Standard Error -----------------
   [cactus] log4j:WARN No appenders could be found for logger
(org.apache.cactus.internal.configuration.ConfigurationInitializer).
   [cactus] log4j:WARN Please initialize the log4j system properly.
   [cactus] ------------- ---------------- ---------------
   [cactus] Testcase: testAddUser(org.appfuse.web.UserCactusTest):
 Caused an ERROR
   [cactus] No message found under code 'user.saved' for locale 'en_US'.
   [cactus] org.springframework.context.NoSuchMessageException: No
message found under code 'user.saved' for locale 'en_US'.
   [cactus]     at
org.springframework.context.support.DelegatingMessageSource.getMessage(DelegatingMessageSource.java:65)
   [cactus]     at
org.springframework.context.support.AbstractApplicationContext.getMessage(AbstractApplicationContext.java:732)
   [cactus]     at
org.springframework.context.support.MessageSourceAccessor.getMessage(MessageSourceAccessor.java:149)
   [cactus]     at
org.appfuse.web.UserFormController.onSubmit(UserFormController.java:90)
   [cactus]     at
org.springframework.web.servlet.mvc.SimpleFormController.processFormSubmission(SimpleFormController.java:258)
   [cactus]     at
org.appfuse.web.UserFormController.processFormSubmission(UserFormController.java:69)
   [cactus]     at
org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:250)
   [cactus]     at
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
   [cactus]     at
org.appfuse.web.UserCactusTest.testAddUser(UserCactusTest.java:36)
   [cactus]     at
org.apache.cactus.internal.AbstractCactusTestCase.runBareServer(AbstractCactusTestCase.java:153)
   [cactus]     at
org.apache.cactus.internal.server.AbstractWebTestCaller.doTest(AbstractWebTestCaller.java:119)
   [cactus]     at
org.apache.cactus.internal.server.AbstractWebTestController.handleRequest_aroundBody0(AbstractWebTestController.java:93)
   [cactus]     at
org.apache.cactus.internal.server.AbstractWebTestController.handleRequest_aroundBody1$advice(AbstractWebTestController.java:224)
   [cactus]     at
org.apache.cactus.internal.server.AbstractWebTestController.handleRequest(AbstractWebTestController.java)
   [cactus]     at
org.apache.cactus.server.ServletTestRedirector.doPost_aroundBody2(ServletTestRedirector.java:101)
   [cactus]     at
org.apache.cactus.server.ServletTestRedirector.doPost_aroundBody3$advice(ServletTestRedirector.java:224)
   [cactus]     at
org.apache.cactus.server.ServletTestRedirector.doPost(ServletTestRedirector.java)
   [cactus]     at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
   [cactus]     at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
   [cactus]     at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
   [cactus]     at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
   [cactus]     at
com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:142)
   [cactus]     at
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:58)
   [cactus]     at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
   [cactus]     at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
   [cactus]     at
org.appfuse.web.MessageFilter.doFilter(MessageFilter.java:33)
[cactus]     at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
   [cactus]     at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
   [cactus]     at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
   [cactus]     at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
   [cactus]     at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
   [cactus]     at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
   [cactus]     at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
   [cactus]     at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
   [cactus]     at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
   [cactus]     at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
   [cactus]     at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
   [cactus]     at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
   [cactus]     at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
   [cactus]     at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
   [cactus]     at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
   [cactus]     at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
   [cactus]     at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
   [cactus]     at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
   [cactus]     at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
   [cactus]     at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
   [cactus]     at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
   [cactus]     at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
   [cactus]     at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
   [cactus]     at java.lang.Thread.run(Thread.java:613)


   [cactus] Test org.appfuse.web.UserCactusTest FAILED

Here's the stack trace if I do the same action in Tomcat.  Like I
said, the same WAR that Cactus uses works fine in Tomcat - here's that
stack trace:

DEBUG - UserFormController.onSubmit(77) | entering 'onSubmit' method...
DEBUG - UserValidator.validate(17) | entering 'validate' method...
DEBUG - UserController.handleRequest(24) | entering 'handleRequest' method...

Matt



On 8/15/06, Kazuhito SUGURI <[email protected]> wrote:
> Hi Matt,
>
> In article <[email protected]>,
> Tue, 15 Aug 2006 18:18:18 -0600,
> "Matt Raible" <[email protected]> wrote:
> mraible> I'm testing a Spring MVC 2.0 (RC1) application with Cactus.  When I
> mraible> run my cactified WAR in Tomcat, everything works fine.  However, when
> mraible> I run it in Cactus, I get:
> mraible>
> mraible>    [cactus] No message found under code 'user.saved' for locale 'en_US'.
> mraible>    [cactus] org.springframework.context.NoSuchMessageException: No
> mraible> message found under code 'user.saved' for locale 'en_US'.
> mraible>    [cactus]     at
> mraible> org.springframework.context.support.DelegatingMessageSource.getMessage(DelegatingMessageSource.java:65)
> mraible>    [cactus]     at
> mraible> org.springframework.context.support.AbstractApplicationContext.getMessage(AbstractApplicationContext.java:698)
> mraible>    [cactus]     at
> mraible> org.springframework.context.support.MessageSourceAccessor.getMessage(MessageSourceAccessor.java:149)
> mraible>    [cactus]     at
> mraible> org.appfuse.web.UserFormController.onSubmit(UserFormController.java:90)
>
> I cannot find any Cactus classes from the stack trace.
> Could you post the full stack trace?
>
> Best Regards,
> ----
> Kazuhito SUGURI
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.