forum.bitel.ru http://forum.bitel.ru/ |
|
Правильно указать путь к jsp-файлу http://forum.bitel.ru/viewtopic.php?f=19&t=11056 |
Страница 1 из 1 |
Автор: | flosisa [ 30 окт 2015, 17:58 ] |
Заголовок сообщения: | Правильно указать путь к jsp-файлу |
Здравствуйте, я хотел бы узнать как указать правильный путь к 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. Уважаемые разработчики и посетители форума, жду от Вас ответы в скором ближайшем времени. Заранее всем спасибо! |
Автор: | flosisa [ 02 ноя 2015, 11:46 ] |
Заголовок сообщения: | Правильно указать путь к jsp-файлу |
Уважаемые разработчики, так как эта задача приоритетная дял нас, пожалуйста дайте хоть какие-то ответы, варианты, направления. Если я иду по неправильному пути, пожалуйста дайте знать, как правильно и быстро решить эту задачу. --- P.S. Знаю, что у разработчиков в субботу и воскресенье выходные, а задачу в форум поставил в пятницу. Но ситуация такая, что я вынужден решать эту задачу в кратчайший срок. Поэтому, жду от Вас ответов в скором времени и надеюсь на ваше понимание! |
Автор: | vkulakov [ 02 ноя 2015, 12:12 ] |
Заголовок сообщения: | Re: Правильно указать путь к jsp-файлу |
В моей версии файлы jsp лежат здесь: BGBillingServer/webroot/WEB-INF/jspf. Но обратиться к ним из формы с большой вероятностью не получится (не спроста они в WEB-INF лежат). В вашем случае я бы написал веб-экшен на динамическом коде, создал бы jsp-страницу и прописал бы к ней путь в файлах webcontent.jsp и body.jsp по образу и подобию. В веб-экшене уже можно записывать что-нибудь в базу и генерировать код (так как делать это в JS не безопасно). Кстати, никакой информации о версиях вы не указали - это очень не удобно и никак не ускорит ответ. |
Автор: | skn [ 02 ноя 2015, 13:25 ] |
Заголовок сообщения: | Re: Правильно указать путь к jsp-файлу |
посмотрите где лежит файл index.jsp но учтите, что доступ к этому файлу будет у всех (даже без авторизации) |
Автор: | flosisa [ 04 ноя 2015, 19:39 ] |
Заголовок сообщения: | Re: Правильно указать путь к jsp-файлу |
У меня нету 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. Плзззззз...... |
Автор: | flosisa [ 04 ноя 2015, 20:51 ] |
Заголовок сообщения: | Re: Правильно указать путь к jsp-файлу |
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 |
Автор: | flosisa [ 04 ноя 2015, 20:54 ] |
Заголовок сообщения: | Re: Правильно указать путь к jsp-файлу |
и еще такой вопрос: эта ошибка откуда берется? => Произошла непредвиденная ошибка |
Автор: | vkulakov [ 05 ноя 2015, 12:07 ] |
Заголовок сообщения: | Re: Правильно указать путь к jsp-файлу |
У меня, к сожалению, нет модуля 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. } } } Читайте комментарии в коде. Как быстрое решение подойдёт. Не совсем правильно будет, но для начала сойдёт. |
Автор: | vkulakov [ 05 ноя 2015, 12:10 ] |
Заголовок сообщения: | Re: Правильно указать путь к jsp-файлу |
Вот здесь ещё почитайте про веб-экшены: 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 своим кодом, который будет сохранять что-то в базу. Здесь немного сложнее. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |