Проблема со struts.SendRedirect: на локалке работает, на серваке"broken link"
От: falk_a  
Дата: 17.07.13 15:52
Оценка:
Проблема со struts.SendRedirect: на локалке работает, на серваке — "broken link"
ИДЕИ?

http://files.rsdn.ru/104511/struts_xml.txt:
...
       <action name="paymentPaypal" class="ranktracker.action.PaymentInfoAction" method="execute">
            <result name="success" type="tiles">success</result><!--this will never get a Hit-->
        </action>
...





http://files.rsdn.ru/104511/PaymentInfoAction.java
  /**
     * The method creates an authentication token for paypal, forwards the
     * request with purchase order description and token to paypal
     *
     * @return struts return value
     * @throws Exception
     */
    @Override
    public String execute() throws Exception {
....
....
....

   objResponse.sendRedirect(objResponse.encodeRedirectURL(redirecturl));
      ///////////////////////////////////////////////////////////////////
        return "sucess";
     
    }
java struts
Re: Проблема со struts.SendRedirect: на локалке работает, на серваке"broken link
От: Blazkowicz Россия  
Дата: 18.07.13 06:34
Оценка: 2 (1)
Здравствуйте, falk_a, Вы писали:

_>Проблема со struts.SendRedirect: на локалке работает, на серваке — "broken link"

_>ИДЕИ?
Ну, и колбаса в коде. Логируйте значение redirecturl и посмотрите лог.
Поставьте firebug и посмотрите URL который приехал с сервера в redirect.
Re[2]: Проблема со struts.SendRedirect: на локалке работает, на серваке"broken l
От: falk_a  
Дата: 18.07.13 06:41
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Здравствуйте, falk_a, Вы писали:


_>>Проблема со struts.SendRedirect: на локалке работает, на серваке — "broken link"

_>>ИДЕИ?
B>Ну, и колбаса в коде. Логируйте значение redirecturl и посмотрите лог.
B>Поставьте firebug и посмотрите URL который приехал с сервера в redirect.

Код печатает на консоль (вместо лога), в фаербаге тоже проверили ещё вчера
Походу, какая то ерунда с настройкками сервера. Вопрос — какая?
Re[2]: Проблема со struts.SendRedirect: на локалке работает, на серваке"broken l
От: falk_a  
Дата: 18.07.13 06:45
Оценка:
Здравствуйте, Blazkowicz, Вы писали:
B>Ну, и колбаса в коде

Если не трудно, "колбаса" — это как?
код чужой, надо понять почему не работает "позавчера"
Я в Java профан cвоих мозгов — не хватает
Re[3]: Проблема со struts.SendRedirect: на локалке работает, на серваке"broken l
От: Blazkowicz Россия  
Дата: 18.07.13 06:46
Оценка:
Здравствуйте, falk_a, Вы писали:

_>Код печатает на консоль (вместо лога), в фаербаге тоже проверили ещё вчера

И что показала проверка?

_>Походу, какая то ерунда с настройкками сервера. Вопрос — какая?

Я не знаю какая ерунда? Объясни что происходит? Сервер шлет redirect. Браузер его получает? Или сервер вместо redirect шлет что-то ещё?
URL какой в длину выходит? А после encodeRedirectURL ?
Re[3]: Проблема со struts.SendRedirect: на локалке работает, на серваке"broken l
От: Blazkowicz Россия  
Дата: 18.07.13 07:00
Оценка: 3 (1) +1
Здравствуйте, falk_a, Вы писали:

_>Если не трудно, "колбаса" — это как?

_>код чужой, надо понять почему не работает "позавчера"
Колбаса это вот:
////////////////////////////////////////////////////////////////////
   
   
   //     public String PayWithPayPal(String amount, String itemInfo, String name, String phone, String email, String currency, String paypalemail, String successUrl, String failUrl, String callBackUrl, String cancelurl,String notifyurl,String custom)
     
            String redirecturl = "";

            //Mention URL to redirect content to paypal site
            redirecturl =redirecturl + "http://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_xclick&business=" +"anshuman@globussoft.com";
                                   

            //First name i assign static based on login details assign this value
            String name=(String)objSession.getAttribute("name");
          
            
            redirecturl =redirecturl + "&first_name=" +name ;

            redirecturl =redirecturl + "&rm=2";
            //City i assign static based on login user detail you change this value
            redirecturl =redirecturl + "&city="+objSession.getAttribute("city");

            //State i assign static based on login user detail you change this value
            redirecturl =redirecturl + "&state="+objSession.getAttribute("state");

            //Product Name
            redirecturl =redirecturl + "&item_name=" + "Ranktracker";

            //amount
            redirecturl =redirecturl + "&amount=" + amount;

            //Phone No
            redirecturl =redirecturl + "&night_phone_a=" + objSession.getAttribute("phone");

            // item name
           redirecturl =redirecturl + "&item_name=" + itemName;

            //Address 
           String add=(String)objSession.getAttribute("address");
           
           if(add!=null){
            redirecturl =redirecturl + "&address1=" + add;
           }else{
                redirecturl =redirecturl + "&address1="+"addressNotAvailable";
           }
 
            //Shipping charges if any
            redirecturl =redirecturl + "&shipping=0";

            //Handling charges if any
            redirecturl =redirecturl + "&handling=0";

            //Tax amount if any
            redirecturl =redirecturl + "&tax=0";

            //Add quatity i added one only statically 
            redirecturl =redirecturl + "&quantity=1";

            //Currency code 
            redirecturl =redirecturl + "&currency=" + "USD";

            //Success return page url
            redirecturl =redirecturl + "&return=" +"http://ranktracker.brandzter.com/accountCreated.action";//http://ranktracker.brandzter.com/returnAfterPayment.action";
                          
            //Failed return page url
            redirecturl =redirecturl + "&cancel_return="+"http://ranktracker.brandzter.com/payment.action";
                    
            redirecturl =redirecturl + "&notify_url="+ "http://ranktracker.brandzter.com/index.jsp";///yet to be defined//done

            redirecturl =redirecturl + "&custom=" + objSession.getAttribute("customerID");

Куча конкатенаций, которые зашумляют код. Захардкоженые значения и URLы. А это значит что нужно переписывать каждый раз, когда что-то меняется.

Стоило сделать что-то типа такого
String urlTemplate = configuration.getPayPalUrlTemplate();

redirectUrl = String.format(urlTemplate,
    configuration.getEmail(),
    objSession.getAttribute("name"),
    2,
    objSession.getAttribute("city"),
    //...
    configuration.getPayPalCancelUrl(),
    configuration.getPayPalNotifyUrl(),
    objSession.getAttribute("customerID")
    );
Re[4]: Проблема со struts.SendRedirect: на локалке работает, на серваке"broken l
От: falk_a  
Дата: 18.07.13 11:20
Оценка:
Здравствуйте, Blazkowicz, Вы писали:
...
С сервером: бросил человека на амбразуру, пусть разбирается
Kод переписали по другому так, что редирект не вызывается.
В принципе — не правильно, но сегодня дедлайн и писать нормально времени не осталось ... есть надежда, что потом ПРИДЁТСЯ переписать нормально.
Автору кода написал "благодарность с занесением в челюсть" за качество кода. Пообещал исправить... после дедлайна
Re[5]: Проблема со struts.SendRedirect: на локалке работает, на серваке"broken l
От: Blazkowicz Россия  
Дата: 18.07.13 11:29
Оценка:
Здравствуйте, falk_a, Вы писали:

_>В принципе — не правильно, но сегодня дедлайн и писать нормально времени не осталось ... есть надежда, что потом ПРИДЁТСЯ переписать нормально.

Это стандартная отмазка. Как говорил мой отец — "делай хорошо, плохо само выйдет". "Срезание углов" только потому что надо на вчера, всегда аукнется проблемами в будушем.
Здесь можно было даже просто оформить код красиво, чтобы в будущем, просто вынести константы в конфиг.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.