This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I try to do a redirect between actions, the application is behind an apache proxy ,that makes it a bit complicated. In myaction: ActionForward forward= new ActionForward("/myotheraction.do"); forward.setRedirect(true); return forward;
I tried that, but I loose that information when creating a new actionforward in myaction. If i could, i would like to modify the response headers before returning, but i cant do that with ActionForwards.
Sorry to resurrect an old thread, but I have a similar issue, and I can't seem to find a resolution. I’ve inherited a Struts 1.1 application, and could use some assistance.
As above, after a user submits a form, the application does a redirect. That is causing the browser to attempt to reach the application server hosting the application (http://appserver:8080/MyApp), not the external Apache 1.3 web server that front-ends it (https://webserver/MyApp).
So for example:
The user logs in and goes through a series of screens. These are traversed using a standard FORWARD, which works fine. The user then fills in a form at https://webserver/MyApp/ObjectiveWizard3.jsp which posts to
/MyApp/saveObjective.do, which then REDIRECTS to /MyApp/objectivesEditor.do. This redirect is hard-coded in the application, not in the struts-config.xml.
The problem is that the app server then sends back a “302 Moved Temporarily” response with Location: http://appserver:8080/MyApp/objectivesEditor.do I tried using <html:base />, but it is inserting a <base> tag referring to appserver, not webserver.
This is despite having in default-web-site.xml:
<frontend host="webserver" port="443" />
The application server is Oracle AS10g (10.1.2), which has an Apache (OHS) instance listening on 8080, connected to a J2EE container on 12053 using AJP 1.3. The external web server is on a Solaris box, and refers to the internal application server by IP, because it isn't even visible on the domain controller or entered into the hosts file. There's a firewall between these two boxes, with the requisite ports opened.
We have the following in the httpd.conf on the external Apache instance:
ProxyPass /MyApp/ http://10.1.1.2:8080/MyApp/ ProxyPassReverse /MyApp/ http://10.1.1.2:8080/MyApp/ (where 10.1.1.2 is a representation of the internal IP address of the AS10g box and 8080 is the port that the OHS is listening on.)
Previously, it was deployed to an Oracle Containers for J2EE (OC4J) 9.0.4 container on Solaris, front-ended by the same Apache 1.3 on another Solaris box.
I haven't done any Struts work in a few years, and am at a loss here . Any ideas are welcomed!