Отправка запроса на отправку СМС via SOAP to MTC

morpheus

скриптописец
07.08.2006
3 915
1
#1
Доброго всем

Столкнулся с полным отсутствием понимания что делать дальше
Задача отправка смс-сообщений
протокол - SMS2All API ( описание Посмотреть вложение API_SMS2ALL.doc )
платформа (у нас) windows 2003 x64, Lotus 8.5.2 FP4

надо научиться отправлять сообщения "их" серверу
при том что помимо логина и пароля присутствует также файл-сертификата.


для начальна, банально, как создать соединение?
 

morpheus

скриптописец
07.08.2006
3 915
1
#3
nvy
так и есть, сменился провайдер

да, используеться https
 

nvyush

Well-Known Member
Lotus team
22.04.2009
2 317
0
#4
Тут есть подключение по HTTPS:
http://codeby.net/ipb.html?s=&sh...st&p=171404
Только там "подавляется" недействительный сертификат, в Вашем случае правильнее будет сертификат зарегистрировать и проверять.
 

morpheus

скриптописец
07.08.2006
3 915
1
#5
что значаит зарегистрировать?
единственное что я могу с ним сделать,это иммпортировать в Интренет эксплореер
 

nvyush

Well-Known Member
Lotus team
22.04.2009
2 317
0
#6
Morpheus
Для начала можно попробовать без проверки действительности сертификата, как в коде по ссылке. Как прикрутить туда проверку сертификата, я не знаю, нужно гуглить. Или спросить в чисто явовоском форуме.
 

morpheus

скриптописец
07.08.2006
3 915
1
#7
без сертификата не конектиться ( используя URLConnection urlConnection; )

java.io.IOException: Server returned HTTP response code: 500 for URL: https://.../MCampaignWs/CampaignsManagerWs.asmx
at com.ibm.net.ssl.www.protocol.http.ci.getInputStream(Unknown Source)
at com.ibm.net.ssl.www.protocol.https.t.getInputStream(Unknown Source)
at JavaAgent.doPost(JavaAgent.java:86)
at JavaAgent.NotesMain(JavaAgent.java:27)
at lotus.domino.AgentBase.runNotes(Unknown Source)
at lotus.domino.NotesThread.run(Unknown Source)
java.lang.NullPointerException
at JavaAgent.NotesMain(JavaAgent.java:32)
at lotus.domino.AgentBase.runNotes(Unknown Source)
at lotus.domino.NotesThread.run(Unknown Source)

а на строки
import com.sun.net.ssl.*;
import com.sun.*;
ругаеться что нету такого пакеджа, гд скачать так и не понял?!
 

nvyush

Well-Known Member
Lotus team
22.04.2009
2 317
0
#8
а на строки
import com.sun.net.ssl.*;
import com.sun.*;
ругаеться что нету такого пакеджа, гд скачать так и не понял?!
В примере по ссылке (в спойлере) импорт только следующих библиотек:
import java.io.*;
import java.net.*;
import javax.net.ssl.*;
 

nvyush

Well-Known Member
Lotus team
22.04.2009
2 317
0
#10
В NetBeans ввёл com.sun.net.ssl ... — автоподстановка показывает, что все классы и интерфейсы помечены как @Deprecated.
A program element annotated @Deprecated is one that programmers are discouraged from using, typically because it is dangerous, or because a better alternative exists. Compilers warn when a deprecated program element is used or overridden in non-deprecated code.
Похоже, javax.net.ssl.* пришёл на смену.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 491
367
#11
все классы com.sun являются "промежуточными", т.е их ф-ционал могут включить в послед. релизы жвм, как часть "страндартных" классов
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 491
367
#14

morpheus

скриптописец
07.08.2006
3 915
1
#15
хух, подключился вроде как

Как зделал :
1. Создал хранилище сертификатов.
2. Импортировал новый сертификат в хранилище.
3. Заюзал это хранилище в агенте.

Section 1. Create the Key Stores, Trust Stores and Certificates using iKeyman

в итоге такая
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">функция</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='java'>private URLConnection CertJava(String sKsrFile, String sKsrPass, String sUrl2Conn) {
try {
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
KeyStore ksjks = KeyStore.getInstance("JKS");
ksjks.load(new FileInputStream(System.getProperty("java.home") + "/bin/" + sKsrFile), sKsrPass.toCharArray());
trustManagerFactory.init(ksjks);

TrustManager[] trustManagers = trustManagerFactory.getTrustManagers();
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustManagers, null);
SSLSocketFactory socketFactory = sc.getSocketFactory();
URL url = new URL(sUrl2Conn);

URLConnection connection = url.openConnection();
((HttpsURLConnection) connection).setSSLSocketFactory(socketFactory);

return connection;
}
catch (Exception e) {
e.printStackTrace();
return null;
}
}[/CODE]
вот теперь проблема с самими SOAP сообщениями