BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 28 апр 2024, 00:01

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Правильно указать путь к jsp-файлу
СообщениеДобавлено: 30 окт 2015, 17:58 
Не в сети

Зарегистрирован: 06 окт 2015, 16:30
Сообщения: 23
Карма: 0
Здравствуйте, я хотел бы узнать как указать правильный путь к jsp, чтобы через get нужные значения(параметры) попали в базу при нажатии button(submit)?
Задача в общем такая (осуществлять функцию "код подтверждения" в смс-рассылках):
В dispatch (в персональном кабинете) надо создать button (форму) для генерации случайнонго кода и потом отправить этот код к абоненту через смс для подтверждения его номера.
Скрипт готов. Все работает если все запустить в отделном html-файле. После чего интегрировали js-код в xsl (ru.bitel.bgbilling.plugins.dispatch), тоже работает, форма(button) появляется в меню pcabinet "Подписка на рассылки", при нажатии тоже все работает, в access.log'ах виден get запрос со случайным кодом, номером абонента и id абонента. Но он не может обращаться к нужному jsp-файлу и в таблицу mysql не попадают нужные значения. jsp-файл бросали даже туда, где лежит ru.bitel.bgbilling.plugins.dispatch.xsl, все равно не получается (из-за того, что все идет через webexecuter). Как быть (куда смотреть)?

Вопрос:
1. Как запускать нужный jsp-файл?
2. В BGBS имеется ли похожие, готовые решения по поводу "кода подтверждения" для смс-рассылки?

---
P.S.

Уважаемые разработчики и посетители форума, жду от Вас ответы в скором ближайшем времени. Заранее всем спасибо!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Правильно указать путь к jsp-файлу
СообщениеДобавлено: 02 ноя 2015, 11:46 
Не в сети

Зарегистрирован: 06 окт 2015, 16:30
Сообщения: 23
Карма: 0
Уважаемые разработчики, так как эта задача приоритетная дял нас, пожалуйста дайте хоть какие-то ответы, варианты, направления.

Если я иду по неправильному пути, пожалуйста дайте знать, как правильно и быстро решить эту задачу.

---
P.S.
Знаю, что у разработчиков в субботу и воскресенье выходные, а задачу в форум поставил в пятницу. Но ситуация такая, что я вынужден решать эту задачу в кратчайший срок. Поэтому, жду от Вас ответов в скором времени и надеюсь на ваше понимание!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 ноя 2015, 12:12 
Не в сети
Клиент

Зарегистрирован: 07 мар 2012, 15:02
Сообщения: 932
Откуда: Воронеж
Карма: 35
В моей версии файлы jsp лежат здесь: BGBillingServer/webroot/WEB-INF/jspf.
Но обратиться к ним из формы с большой вероятностью не получится (не спроста они в WEB-INF лежат).
В вашем случае я бы написал веб-экшен на динамическом коде, создал бы jsp-страницу и прописал бы к ней путь в файлах webcontent.jsp и body.jsp по образу и подобию. В веб-экшене уже можно записывать что-нибудь в базу и генерировать код (так как делать это в JS не безопасно).

Кстати, никакой информации о версиях вы не указали - это очень не удобно и никак не ускорит ответ.

_________________

Клиент: вер. 6.2.873 / 04.12.2017 19:38:11
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_65
Сервер: вер. 6.2.1202 / 04.12.2017 19:39:21
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_91


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 ноя 2015, 13:25 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
посмотрите где лежит файл index.jsp
но учтите, что доступ к этому файлу будет у всех (даже без авторизации)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 ноя 2015, 19:39 
Не в сети

Зарегистрирован: 06 окт 2015, 16:30
Сообщения: 23
Карма: 0
У меня нету index.jsp в BGBS, версия 6.1. Когда кнопку нажимаю, через alert все мне нужное выходит: client_id, phone_number, confirm_code (127.0.0.1 CA5C0F18BD0D05807196C03E4F2C96D2 0.001 404 5 "GET /insert.jsp?client_id=2&phone_number=998909881331&confirm_code=5555 HTTP/1.1" confirm_code=5555&phone_number=XXXXXXXXXXXX&client_id=14&). Но как сделать чтобы эти данные не на экран, а через jsp в базу попали? Помогите пожалуйста, я в java почти не шарю. Можете в дин-коде этот нужный мне webaction написать, а то который день мучаюсь не получается!

---
P.S.

Плзззззз......


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 ноя 2015, 20:51 
Не в сети

Зарегистрирован: 06 окт 2015, 16:30
Сообщения: 23
Карма: 0
11-04/19:46:58 ERROR [http-bio-0.0.0.0-80-exec-8] ActionHandler - Exception in ru.bitel.bgbilling.plugins.dispatch.server.action.web.ActionDispatch:addContact
11-04/19:46:58 ERROR [http-bio-0.0.0.0-80-exec-8] CommonExecuter - Произошла ошибка
ru.bitel.bgbilling.common.BGException: Произошла ошибка
at ru.bitel.bgbilling.kernel.container.web.action.ActionHandler.handle(ActionHandler.java:94)
at bitel.billing.server.WebExecuter.executeAction(WebExecuter.java:465)
at bitel.billing.server.WebExecuter.doPost(WebExecuter.java:217)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at ru.bitel.common.server.filters.MultipartFilter.doFilter(MultipartFilter.java:48)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at ru.bitel.common.server.filters.XSSFilter.doFilter(XSSFilter.java:89)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at ru.bitel.common.server.filters.BGAuthFilter.doFilter(BGAuthFilter.java:298)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at ru.bitel.common.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:50)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
at java.util.regex.Matcher.getTextLength(Matcher.java:1283)
at java.util.regex.Matcher.reset(Matcher.java:309)
at java.util.regex.Matcher.<init>(Matcher.java:229)
at java.util.regex.Pattern.matcher(Pattern.java:1093)
at java.util.regex.Pattern.matches(Pattern.java:1134)
at ru.bitel.bgbilling.plugins.dispatch.server.DispatchServiceImpl.updateContact(DispatchServiceImpl.java:247)
at ru.bitel.bgbilling.plugins.dispatch.server.action.web.ActionDispatch.addContact(ActionDispatch.java:224)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at ru.bitel.bgbilling.kernel.container.web.action.ActionInfo.invoke(ActionInfo.java:41)
at ru.bitel.bgbilling.kernel.container.web.action.ActionHandler.handleImpl(ActionHandler.java:150)
at ru.bitel.bgbilling.kernel.container.web.action.ActionHandler.handle(ActionHandler.java:73)
... 32 more


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 ноя 2015, 20:54 
Не в сети

Зарегистрирован: 06 окт 2015, 16:30
Сообщения: 23
Карма: 0
и еще такой вопрос: эта ошибка откуда берется? => Произошла непредвиденная ошибка


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 ноя 2015, 12:07 
Не в сети
Клиент

Зарегистрирован: 07 мар 2012, 15:02
Сообщения: 932
Откуда: Воронеж
Карма: 35
У меня, к сожалению, нет модуля dispatch, но вот обычный веб-экшен, который сможет что-то сохранить в базу:
Код:
package ru.xxx.contract.action.web;

import org.apache.log4j.Logger;
import org.w3c.dom.Element;

import bitel.billing.server.contract.action.base.ActionBase;
import bitel.billing.server.contract.bean.Contract;
import bitel.billing.server.contract.bean.ContractManager;

/**
 * <p><b>Отложенный платёж</b></p>
 * <p>Альтернативная реализация отложенного платежа.</p>
 * <p>Скрипт запускается из динамического кода в биллинге. Для связи веб-экшена и класса из динамического кода
 * в конфигурацию биллинга нужно добавить:
 * <code>
 * dynaction:contract.web.ActionDeferredPayment=ru.xxx.contract.action.web.ActionDeferredPayment
 * </code>
 * </p>
 */
public class ActionDeferredPayment2 extends ActionBase {
   private Logger log = Logger.getLogger(ActionDeferredPayment2.class);

   /**
    * <p>Идентификатор модуля NPay.</p>
    */
   private int NPAY_MID = 2;

   @Override
   public void doAction() throws Exception {
      this.rootNode.setAttribute("status", "ok");
      
      String command = this.request.getParameter("command");

      this.rootNode.setAttribute("contractId", Integer.toString(this.cid));
      this.rootNode.setAttribute("command", command);

      Element element = createElement(this.rootNode, "deferredPayment");
      
      if (command == null || command.isEmpty() || command.equals("activate")) {
         ContractManager cm = new ContractManager(this.con);
         Contract contract = cm.getContractById(this.cid);
         cm.recycle();

         Здесь делаем что-нибудь полезное с договором. Если нужна база, то
         коннекшен можно взять здесь: this.con.
      }
   }
}

Читайте комментарии в коде. Как быстрое решение подойдёт. Не совсем правильно будет, но для начала сойдёт.

_________________

Клиент: вер. 6.2.873 / 04.12.2017 19:38:11
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_65
Сервер: вер. 6.2.1202 / 04.12.2017 19:39:21
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_91


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 ноя 2015, 12:10 
Не в сети
Клиент

Зарегистрирован: 07 мар 2012, 15:02
Сообщения: 932
Откуда: Воронеж
Карма: 35
Вот здесь ещё почитайте про веб-экшены:
http://wiki.bitel.ru/index.php/%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B3%D0%BE_%D0%BA%D0%BE%D0%B4%D0%B0_%D0%B0%D0%BA%D1%88%D0%B5%D0%BD%D0%B0_%D0%B8_%D0%B2%D0%B5%D0%B1-%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BE%D0%B2

В вашем случае, возможно, проще обернуть стандартный веб-экшен модуля dispatch своим кодом, который будет сохранять что-то в базу. Здесь немного сложнее.

_________________

Клиент: вер. 6.2.873 / 04.12.2017 19:38:11
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_65
Сервер: вер. 6.2.1202 / 04.12.2017 19:39:21
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_91


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.075s | 36 Queries | GZIP : On ]