I managed to solve this problem - thanks for your help.

Matt

On 8/15/06, Matt Raible <[EMAIL PROTECTED]> wrote:
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
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to