> 1) You need to use flush="true" on your template:get tags in the template. Thank you very much. Actually this did not solve my problem, because flush is only useful with get tags, but not with template:insert. I know that jsp:include has capability to flush, but I like using template tags. Is it possible to have flush attribute in template:insert tag in future? > 2) Did you deploy your WAR correctly? That do you mean about this? All the files are in correct places, but WebSphere always puts an extra folder in those redirects. I do not use <html:base> tag because my jsp files are under WEB-INF/web directory, so it doens't work. It seems that this problem occurs using forms: I have form like this: <html:form action="update" focus="name"> ... </html:form> update mapping is defined like this: <action path="/update" type="com.projectcast.UpdateAction" name="UpdateForm" scope="request" input="/edit.do" validate="true"> <forward name="success" path="/list.do" redirect="true"/> <forward name="cancel" path="/list.do" redirect="true"/> </action> When I run this form I get this code: <form name="FundForm" method="POST" action="/app/updatefund.do"> When I submit or cancel this form the redirect is processed to: http://localhost/app/app/list.do. I included the error message in this post. > Check to make sure you don't have an extra folder app folder under app in > default_host. No I don't have extra app folder. > 3) Haven't used Struts' DataSource functionality, I'm afraid I can't help > you there - it doesn't look like it should be a problem, but I can't make > any guarantees. :) Then maybe you can tell me how do I get DataSource object from WebSphere JNDI (Code would be great). So how to replace this: (InitialContext something, but not sure how). >> DataSource ds = (DataSource)servlet.getServletContext() >> .getAttribute(Action.DATA_SOURCE_KEY); Kind Regards Aapo Laakkonen
Error 400 An error has occured while processing request:http://localhost/app/app/list.do Message: Invalid path /app/list was requested Target Servlet: action StackTrace: -------------------------------------------------------------------------------- Root Error-1: Invalid path /app/list was requested com.ibm.servlet.engine.webapp.WebAppErrorReport: Invalid path /app/list was requested at javax.servlet.ServletException.<init>(ServletException.java:107) at com.ibm.websphere.servlet.error.ServletErrorReport.<init>(ServletErrorReport.java:31) at com.ibm.servlet.engine.webapp.WebAppErrorReport.<init>(WebAppErrorReport.java:19) at com.ibm.servlet.engine.webapp.WebAppDispatcherResponse.sendError(WebAppDispatcherResponse.java:100) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1556) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:491) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code)) at com.ibm.servlet.engine.webapp.StrictServletInstance.doService(ServletManager.java:626) at com.ibm.servlet.engine.webapp.StrictLifecycleServlet._service(StrictLifecycleServlet.java:160) at com.ibm.servlet.engine.webapp.IdleServletState.service(StrictLifecycleServlet.java:287) at com.ibm.servlet.engine.webapp.StrictLifecycleServlet.service(StrictLifecycleServlet.java:105) at com.ibm.servlet.engine.webapp.ServletInstance.service(ServletManager.java:360) at com.ibm.servlet.engine.webapp.ValidServletReferenceState.dispatch(ServletManager.java:775) at com.ibm.servlet.engine.webapp.ServletInstanceReference.dispatch(ServletManager.java:701) at com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:478) at com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:234) at com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:138) at com.ibm.servlet.engine.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:77) at com.ibm.servlet.engine.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:67) at com.ibm.servlet.engine.invocation.CacheableInvocationContext.invoke(CacheableInvocationContext.java:106) at com.ibm.servlet.engine.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:160) at com.ibm.servlet.engine.oselistener.OSEListenerDispatcher.service(OSEListener.java:300) at com.ibm.servlet.engine.oselistener.SQEventListenerImp$ServiceRunnable.run(SQEventListenerImp.java:230) at com.ibm.servlet.engine.oselistener.SQEventListenerImp.notifySQEvent(SQEventListenerImp.java:104) at com.ibm.servlet.engine.oselistener.serverqueue.SQEventSource.notifyEvent(SQEventSource.java:212) at com.ibm.servlet.engine.oselistener.serverqueue.SQWrapperEventSource$SelectRunnable.notifyService(SQWrapperEventSource.java:353) at com.ibm.servlet.engine.oselistener.serverqueue.SQWrapperEventSource$SelectRunnable.run(SQWrapperEventSource.java:220) at com.ibm.servlet.engine.oselistener.outofproc.OutOfProcThread$CtlRunnable.run(OutOfProcThread.java:248) at java.lang.Thread.run(Thread.java:481)