Hi
Thank you for reading my post
when i click on some of my links in the web application
The server return an exception like :


java.lang.IllegalArgumentException: Path http://www.mysite.com/ does not
start with a "/" character

org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1062)

org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)

org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
  org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
  org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
  javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
  javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)

com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)


For example the above exception come from clicking a link that change the language.
which produce a url like :

http://www.mysite.com/ChangeLocale.do;jsessionid=2B7855F5F585B96C83B68FBC6B4E78D4?Lang=en

when the browser shows the exception if i click GO button of
browser again it will works fine.


The source code for changeLocale action is as follow :


public class ChangeLocaleAction
  extends Action
{

public ActionForward execute( ActionMapping mapping, ActionForm form,
                                HttpServletRequest request,
                                HttpServletResponse response )
  {
     ChangeLocaleForm theForm      = (ChangeLocaleForm)form;
     String           forward      = Constants.FORWARD_SUCCESS;
String s=request.getParameter("Lang"); String localeString = s;//request.getAttribute("Lang").toString(); //theForm.getLocaleString();
     HttpSession      session      = request.getSession( true );
     int              headLen      = localeString.length();
     String           language     = Constants.LANGUAGE_EN;
     String           country      = Constants.COUNTRY_US;

     if( headLen == 2 )
     {
        language = localeString;
     }

     if( headLen == 5 )
     {
        language = localeString.substring( 0, 2 );
        country  = localeString.substring( 3 );
     }
// System.out.println("This is the language : ====>"+language+"******This is the country : ====> "+ country);
     Locale newLocale = new Locale( language, country );
     session.setAttribute("Language",language);

     session.setAttribute( Globals.LOCALE_KEY, newLocale );

     ActionForward myForward = null;
     String myPath="/welcome.jsp";
if ((request.getHeader("Referer")!=null)&&(request.getHeader("Referer")!=""))
     try{
myPath=request.getHeader("Referer");
        myPath=StringUtils.substringAfter(myPath,request.getContextPath());
if ((request.getHeader("Referer")!=null)&&(request.getHeader("Referer")!="")){ if(myPath=="/" || StringUtils.contains(myPath,"Locale")) myPath="/welcome.jsp?la="+language; myForward= new ActionForward("lastPath",myPath,false,false);
         return myForward;
         }
         }
     catch(Exception npe){
        npe.printStackTrace();
          }
// [End]path redirection end here if (language=="hr") { session.setAttribute("LastPageInclude","/ContentPages/welcome.hr.jsp");
          }
if (language=="en") { session.setAttribute("LastPageInclude","/ContentPages/welcome.en.jsp");
     }
     forward="forwarder";
     return mapping.findForward( forward );
}
}



How i can fix this problem , it was working fine before i migrate to new server.
Thank you for looking at my code.



Reply via email to