forum.bitel.ru http://forum.bitel.ru/ |
|
Указывать реквизиты другого контент-провайдера http://forum.bitel.ru/viewtopic.php?f=54&t=11013 |
Страница 1 из 1 |
Автор: | flosisa [ 21 окт 2015, 17:03 ] |
Заголовок сообщения: | Указывать реквизиты другого контент-провайдера |
Здраствуйте, я хотел указать адрес (ip и порт), логин и пароль другого контент-провайдера для отправки собщений через smpp. Но, не могу найти где это можно осуществлять и как? Через api документацию получилось свой dyn-класс создать: --- package ru.bitel.bgbilling.plugins.dispatch.server.sender; import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase; import ru.bitel.bgbilling.server.util.Setup; import ru.bitel.common.sql.ConnectionSet; import ru.bitel.common.model.Id; import ru.bitel.bgbilling.plugins.dispatch.common.bean.Contact; public class mysmsgateway extends java.lang.Object implements Sender { @Override public void send(Contact contact, java.lang.String title, java.lang.String messageBody, java.util.List<javax.activation.DataSource> files) throws ru.bitel.bgbilling.common.BGException { } } --- Компиляция успешна прошла, но когда Run(F9) нажимаю выходить ошибка org/jsmpp/PDUException ... Caused by: java.lang.ClassNotFoundException: org.jsmpp.PDUException ... Вопросы: 1. Где и как указать адрес (ip и порт), логин и пароль другого контент-провайдера (ne smsc, smsaero, ...) для отправки собщений через smpp? 2. Чтобы Run(F9) прошло успешно, мне надо скачать jsmpp-2.1.0-RELEASE.jar? Если да, куда положить? 3. Ну вообще что нужно сделать чтобы достичь работы sms-dispatch?. --- P.S. Заранее всем спасибо! Жду ответы, советы и варианты любые... |
Автор: | Artur [ 21 окт 2015, 17:32 ] |
Заголовок сообщения: | Re: Указывать реквизиты другого контент-провайдера |
Выведите все из окна about. А так, нужно вашу библиотеку положить в lib/ext (если последняя версия биллинга). По поводу логина, пароля, ip:port - нужно смотреть документацию к этой самой jsmpp. |
Автор: | Phricker [ 21 окт 2015, 18:24 ] |
Заголовок сообщения: | Re: Указывать реквизиты другого контент-провайдера |
Artur писал(а): А так, нужно вашу библиотеку положить в lib/ext (если последняя версия биллинга). По поводу логина, пароля, ip:port - нужно смотреть документацию к этой самой jsmpp. Цитата: Помимо встроенных способов отправки сообщения существует возможность реализации пользовательских способов отправки. Для реализации этой возможности необходимо воспользоваться механизмом динамически загружаемых Java-классов. Необходимо создать динамический класс, реализующий интерфейс ru.bitel.bgbilling.plugins.dispatch.server.sender.Sender, а затем создать метод отправки нажатием на кнопку Добавить в панели инструментов, указав этот класс в выпадающем списке.
|
Автор: | Artur [ 21 окт 2015, 18:45 ] |
Заголовок сообщения: | Re: Указывать реквизиты другого контент-провайдера |
Видимо, ТС уже отверг для себя такой вариант =) Либо плагин Dispatch отсутствует. |
Автор: | flosisa [ 21 окт 2015, 19:06 ] |
Заголовок сообщения: | Re: Указывать реквизиты другого контент-провайдера |
Вот полная ошибка: javax.xml.ws.soap.SOAPFaultException: org/jsmpp/PDUException at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:193) at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:134) at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:123) at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:93) at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:144) at com.sun.proxy.$Proxy35.run(Unknown Source) at ru.bitel.bgbilling.kernel.dynamic.client.DynamicCodeLibraryPanel$14.actionPerformedImpl(DynamicCodeLibraryPanel.java:521) at ru.bitel.common.client.AbstractBGUPanel.actionPerformed(AbstractBGUPanel.java:237) at ru.bitel.common.client.AbstractBGUPanel$DefaultAction.actionPerformed(AbstractBGUPanel.java:91) at ru.bitel.common.client.AbstractBGUPanel.performAction(AbstractBGUPanel.java:541) at ru.bitel.common.client.AbstractBGUPanel.performAction(AbstractBGUPanel.java:522) at ru.bitel.common.client.AbstractBGUPanel.performAction(AbstractBGUPanel.java:517) at ru.bitel.bgbilling.kernel.dynamic.client.DynamicCodeLibraryPanel$6.actionPerformed(DynamicCodeLibraryPanel.java:271) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) at java.awt.Component.processMouseEvent(Component.java:6535) at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) at java.awt.Component.processEvent(Component.java:6300) at java.awt.Container.processEvent(Container.java:2236) at java.awt.Component.dispatchEventImpl(Component.java:4891) at java.awt.Container.dispatchEventImpl(Container.java:2294) at java.awt.Component.dispatchEvent(Component.java:4713) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) at java.awt.Container.dispatchEventImpl(Container.java:2280) at java.awt.Window.dispatchEventImpl(Window.java:2750) at java.awt.Component.dispatchEvent(Component.java:4713) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.awt.EventQueue$4.run(EventQueue.java:729) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) Caused by: java.lang.NoClassDefFoundError: org/jsmpp/PDUException at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) at java.lang.Class.privateGetMethodRecursive(Class.java:3048) at java.lang.Class.getMethod0(Class.java:3018) at java.lang.Class.getMethod(Class.java:1784) at ru.bitel.bgbilling.kernel.dynamic.server.DynamicCodeServiceImpl.run(DynamicCodeServiceImpl.java:304) at sun.reflect.GeneratedMethodAccessor87.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at ru.bitel.bgbilling.kernel.container.service.server.ServiceInfo.invoke(ServiceInfo.java:101) at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler.invoke0(AbstractJaxWsHandler.java:195) at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler.access$0(AbstractJaxWsHandler.java:169) at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler$1.run(AbstractJaxWsHandler.java:242) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler.invoke(AbstractJaxWsHandler.java:236) at ru.bitel.bgbilling.kernel.container.ws.server.JaxWsHandler.invoke(JaxWsHandler.java:315) at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler$ServiceInstanceResolver$1.invoke(AbstractJaxWsHandler.java:335) at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:150) at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:261) at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:100) at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:641) at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:600) at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:585) at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:482) at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:314) at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:608) at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:259) at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:162) at ru.bitel.bgbilling.kernel.container.ws.server.JaxWSAdapter.handle(JaxWSAdapter.java:288) at bitel.billing.server.Executer.doPost(Unknown Source) 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 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.ClassNotFoundException: org.jsmpp.PDUException at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 49 more - Phricker (Помимо встроенных способов отправки сообщения существует возможность реализации пользовательских способов отправки. Для реализации этой возможности необходимо воспользоваться механизмом динамически загружаемых Java-классов. Необходимо создать динамический класс, реализующий интерфейс ru.bitel.bgbilling.plugins.dispatch.server.sender.Sender, а затем создать метод отправки нажатием на кнопку Добавить в панели инструментов, указав этот класс в выпадающем списке.) Я это уже читал, вы думаете если это читать, все просто так пойдет? --- Я бросил jsmpp.jar скинул в lib/ext/. Но не пашет, не находит нужный класс. Не нашел ничего про smpp в api документации. Я уже наподобие этого интерфейса (ru.bitel.bgbilling.plugins.dispatch.server.sender.Sender) dyn-класс создал и на верху выложил если Вы не заметили. А как указать путь к нужному скачанному jar (jsmpp.jar) файлу и/или классу org.jsmpp.PDUException (import org.jsmpp.PDUException; не помогает)? Дайте пожалуйста хоть какие-то варианты... |
Автор: | Phricker [ 21 окт 2015, 19:58 ] |
Заголовок сообщения: | Re: Указывать реквизиты другого контент-провайдера |
flosisa писал(а): Я это уже читал, вы думаете если это читать, все просто так пойдет? Ну нет конечно. Я вот лично начинал с вики, учился по примерам, и лишь потом брался писать в динкоде что-то ![]() И немного книжек по яве тоже, в соответствующей теме на форуме. А потом когда поумнел начал пользовался jd-gui, смотреть как пишут разрабы, и совершать те же ошибки что и они ![]() Код: package ru.ellcom.modules.dispatch; import ru.bitel.bgbilling.common.BGException; import ru.bitel.bgbilling.kernel.plugin.server.BGPluginManagerServer; import ru.bitel.bgbilling.plugins.dispatch.common.bean.Contact; import ru.bitel.bgbilling.plugins.dispatch.server.sender.Sender; import ru.bitel.common.Preferences; import javax.activation.DataSource; import java.util.List; public class MyLittleSender implements Sender { private Preferences pluginPreferences = BGPluginManagerServer.getManager().getPlugin("ru.bitel.bgbilling.plugins.dispatch").getSetup(); @Override public void send(Contact contact, String s, String s1, List<DataSource> list) throws BGException { String login = this.pluginPreferences.get("sender.sms.mysender.login"); String password = this.pluginPreferences.get("sender.sms.mysender.pass"); //URL задаем прямо в скрипте. Лень писать в настройках плагина. String url = "https://bitel.ru/sendsms/?"; /* Тут пишем что угодно, что реализует вашу отправку по вашим запросам */ } } Сохраняем и компилируем в динкоде. Заходим в Плагины-Настройки плагинов-Рассылки (Dispatch) Добавляем туда строки ![]() Заходим в Плагины - Рассылки и добавляем свой способ отправки ![]() Тестируем |
Автор: | Phricker [ 21 окт 2015, 20:58 ] |
Заголовок сообщения: | Re: Указывать реквизиты другого контент-провайдера |
Ну и на вики |
Автор: | Artur [ 22 окт 2015, 12:47 ] |
Заголовок сообщения: | Re: Указывать реквизиты другого контент-провайдера |
Вы так и не указали какая у вас версия. Еще забыл уточнить, что после того, как положите библиотеку, то нужно перезапустить сервер биллинга. |
Автор: | Phricker [ 22 окт 2015, 13:12 ] |
Заголовок сообщения: | Re: Указывать реквизиты другого контент-провайдера |
У него/нее в профиле указано 6.1 |
Автор: | flosisa [ 22 окт 2015, 18:46 ] |
Заголовок сообщения: | Re: Указывать реквизиты другого контент-провайдера |
Спасибо, Phricker Ваш скрипт помог. Учту Ваш совет по поводу wiki (до того в основном читал doc и api.doc). Сейчас ошибка дошла до минимума. То есть компиляция без ошибки проходит, но при Run(F9) вывод дает вот это: load class ru.bitel.bgbilling.plugins.dispatch.server.sender.MyLittleSender need a method "execute(Setup,ConnectionSet)" or "static main(String[])" to run --- Что может быть? Добавление над public void send: public void execute(Setup,ConnectionSet){...} не помогает. |
Автор: | Phricker [ 22 окт 2015, 19:58 ] |
Заголовок сообщения: | Re: Указывать реквизиты другого контент-провайдера |
А зачем вы нажимаете Run(F9) и что вы хотите этим добиться? |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |