Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/119: Рейтинг темы: голосов - 119, средняя оценка - 4.61
Tok

И снова Web-сервис

24.05.2010, 10:13. Показов 22111. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прочитал предварительно статьи на сервере IBM и на этом форуме.
Создал простейший сервис в базе на сервере Domino.
ввожу URL в Explorer, ответ нормальный.

Развернул и попробовал протестировать его с использованием ECLIPSE (рекомендация от IBM - мол, проще).
Не тут то было.

на URL http://web4:80/TAG/Rooms.nsf/W... WebService
отвечает ошибкой (возможно, нужен логин и пароль):

IWAB0379E Unable to open http://web4:80/TAG/Rooms.nsf/W... WebService.
IWAB0135E An unexpected error has occurred.
WSDLException
WSDLException: faultCode=INVALID_WSDL: : The entity "nbsp" was referenced, but not declared.

попробовал URL https://web4:80/names.nsf?Login&Usernam...?OpenWebService

снова ошибка:
IWAB0379E Unable to open https://web4:80/names.nsf?Login&Usernam...?OpenWebService.
IWAB0135E An unexpected error has occurred.
WSDLException
WSDLException: faultCode=OTHER_ERROR: Remote host closed connection during handshake

Так что это за гр*цензура*ый механизм, если его невозможно нормально проверить!
Или что, для проверки нужно осваивать жаву?
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.05.2010, 10:13
Ответы с готовыми решениями:

Web-сервис
День добрый! Может кто-то помочь не лотусисту. из демо-примера сделал веб-сервис - даже работает с простыми значениями Option...

Передать в Web-сервис Html-текст
Подскажите как правильно передать в переменную web-сервиса и забрать html-текст? <!--shcode--><pre><code...

Втянуть файл через Web-сервис в базу. Можно ли?
Можно ли через Web-сервис втянуть файл, ну и прикрепить его к документу? Подскажите в какую сторону копнуть

9
0 / 0 / 0
Регистрация: 28.06.2009
Сообщений: 1,567
24.05.2010, 10:27
ну насчет проще с эклипса - я бы так не сказал... вот пример простейшего подхода для вызова вэб-сервисов из лотуса
Consuming Web services from a Lotus Domino Java agent
классика про создание
Lotus Notes/Domino 7 Web Services

в 8-ке несколько поменялось, но я пробовал как выше - работает в простом случае... проблемы возникают при вызове веб-сервисов сторонних, которые используют новые подходы - тут уж копать и копать...
вот тут http:///ipb.html?act=Searc...ighlite=%2Bwsdl можно увидеть немало тем похожих и на все вкусы подходы...
0
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
24.05.2010, 10:28
Цитата Сообщение от TAG
Или что, для проверки нужно осваивать жаву?
Лотус позволяет создавать веб-сервисы и с использованием ЛС. Для тестирования можно использовать всё, чем владеете, хоть VBScript. Так что без Java можно обойтись. Но лучше всё-таки освоить. Я для тестирования использовал NetBeans, образцом кода поделился turumbay: http:///ipb.html?s=&sh...st&p=170948
Информация о веб-сервисах от IBM (рус):
http://www.ibm.com/developerworks/ru/libra...no-webservices/
http://www.ibm.com/developerworks/ru/libra...d7-webservices/
0
Tok
24.05.2010, 12:02
Цитата Сообщение от nvy
Лотус позволяет создавать веб-сервисы и с использованием ЛС. Для тестирования можно использовать всё, чем владеете, хоть VBScript. Так что без Java можно обойтись. Но лучше всё-таки освоить. Я для тестирования использовал NetBeans, образцом кода поделился turumbay: http:///ipb.html?s=&sh...st&p=170948
Информация о веб-сервисах от IBM (рус):
http://www.ibm.com/developerworks/ru/libra...no-webservices/
http://www.ibm.com/developerworks/ru/libra...d7-webservices/
Спасибо!
Tok
24.05.2010, 16:06
Протестировал web-сервис только на локальной машине с использованием двух инструментов:
Eclipse, soapUI.

Попытки тестирования этой же базы на сервере не дают успеха, так как не знаю, как программно
авторизоваться перед тем, как обращаться к Web-сервису.

Может быть кто-нибудь подскажет, как послать программно логин и пароль, а потом обратиться к Web-сервису в Eclipse или soapUI?
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
24.05.2010, 16:16
Цитата Сообщение от TAG
Может быть кто-нибудь подскажет, как послать программно логин и пароль, а потом обратиться к Web-сервису в Eclipse или soapUI?
Ну так посмотрите код по ссылке, которую я давал в предыдущем посте. Там как раз с авторизацией.
0
Tok
24.05.2010, 16:38
Цитата Сообщение от nvy
Ну так посмотрите код по ссылке, которую я давал в предыдущем посте. Там как раз с авторизацией.
Там написано много, но я не понимаю слэнг типа "печеньки" и пр. Не понимаю, как это сделать конкретно в Eclipse или soapUI.
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
24.05.2010, 17:03
"Печеньки" — это куки. Средство эмуляции сессии в протоколе HTTP. Подробнее — google.
Втыкаете нижеприведённый код в эклипс, правите вверху в функции main, значения, начинающиеся на "YOUR_" и запускаете. Правда, тут протокол HTTPS, если не будет работать, заменить везде HTTPS на HTTP и удалить код в функции doPost между комментариями
//Create a trust manager that does not validate certificate chains
и
//End create a trust manager that does not validate certificate chains

.SpoilerTarget">Спойлер: Раскрывающийся Текст


Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
package YOUR_PACKAGE;
import java.io.*;
import java.net.*;
import javax.net.ssl.*;
 
public class HTTPSConnectionExample {
 
public static void main(String[] args ){
try {
String urlString = "https://YUOR_SERVER";
String login = "YOUR_LOGIN";
String password = "YOUR_PASSWORD";
DominoHTTPSConnection domino = new DominoHTTPSConnection(urlString, login, password);
String content = "YOUR_XML_REQUEST";
System.out.println(content);
urlString = "YOUR_DATABASE.nsf/YOUR_WEBSERVICE/";
String res = domino.doPost(urlString, content);
System.out.println(res);
} catch (Exception e) {
e.printStackTrace();
}
}
 
static class DominoHTTPSConnection{
private String serverAddress = "";
private String sessionId = "";
 
DominoHTTPSConnection(String serverAddress, String sessionId){
thys.serverAddress = serverAddress;
thys.sessionId = sessionId;
}
 
DominoHTTPSConnection(String serverAddress, String login, String password){
thys.serverAddress = serverAddress;
login(login, password);
}
 
private void login(String login, String password) {
HttpsURLConnection connection = null;
try {
String loginData = "&Username=" + login + "&Password=" + password;
URL url = new URL(serverAddress + "/names.nsf?login");
connection = doPost(url, loginData, "");
sessionId = getSessionId(connection);
if (sessionId.equals("")) throw new IllegalArgumentException("Cant create session");
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
closeConnection(connection);
}
}
 
private void closeConnection(HttpsURLConnection connection){
if (connection != null) {
connection.disconnect();
}
}
 
private HttpsURLConnection doPost(URL url, String postData, String sessionId) throws IOException {
// Create a trust manager that does not validate certificate chains
TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
}
};
 
// Install the all-trusting trust manager
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (Exception e) {
e.printStackTrace();
}
 
HostnameVerifier hv = new HostnameVerifier() {
public boolean verify(String urlHostName, SSLSession session) {
System.out.println("Warning: URL Host: "+urlHostName+" vs. "+session.getPeerHost());
return true;
}
};
 
HttpsURLConnection.setDefaultHostnameVerifier(hv);
//End create a trust manager that does not validate certificate chains
 
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connection.setRequestProperty("Content-Length", Integer.toString(postData.getBytes().length));
connection.setRequestProperty("Content-Language", "en-US");
connection.setRequestProperty("Cookie", sessionId);
 
connection.setInstanceFollowRedirects(false);
connection.setUseCaches(false);
connection.setDoInput(true);
connection.setDoOutput(true);
 
DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
wr.writeBytes(postData);
wr.flush();
wr.close();
return connection;
}
 
private String getSessionId(HttpURLConnection connection) {
String cookieVal = connection.getHeaderField("Set-Cookie");
if (cookieVal == null)
return "";
return cookieVal.substring(0, cookieVal.indexOf(";"));
}
 
public String doPost( String path , String postData ){
HttpsURLConnection connection = null;
try {
URL url = new URL( serverAddress + path );
connection = doPost( url , postData , sessionId);
return getResponseText( connection );
} catch ( Exception e ){
throw new RuntimeException( e );
} finally {
closeConnection( connection );
}
}
 
private String getResponseText( HttpURLConnection connection ) throws IOException{
BufferedReader rd = null;
try {
rd = new BufferedReader(
new InputStreamReader(connection.getInputStream()));
String line;
StringBuffer response = new StringBuffer();
while ((line = rd.readLine()) != null) {
response.append(line);
response.append("\n\r");
}
return response.toString();
} finally {
rd.close();
}
}
 
public String getSessionId(){
return sessionId;
}
}
}
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
24.05.2010, 17:10
какие-то "необычные" разработчики появляться на форуме стали ;)
код изучать не хотят, спрашивать гугл - тоже
как студенты. кот. передирают рефераты из тырнета - знаний 0, желаний 0 (учиться), зато результат давай
что из таких повырастает?... (я-то ответ знаю ;) )
0
Tok
24.05.2010, 17:45
nvy
Огромное спасибо! Теперь буду разбираться. Я новичок в программировании под WEB, поэтому задаю много вопросов.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.05.2010, 17:45
Помогаю со студенческими работами здесь

web-сервис
Есть 2 машины в локалке. На них установлен iis-сервер. Подскажите простой пример обмена пакетами между двумя компьютерами. Например: 1-й...

web сервис
Приветствую, друзья! Решил написать web сервис. Вроде все получилось, только возникла маленькая загвоздочка: У меня есть ,...

WEB сервис
Не нашёл нужного раздела, написал сюда.... Нужен интернет сервис - база данных, нужный функционал 1. Создание структуры базы...

Web-сервис на C++?
предыстория такова: встретились,как-то,два совсем начинающих на С++.И как обычно завели "умный" спор по теме. Один начал...

Запрос в web-сервис
Доброго времени суток! Подскажите пожалуйста как на Python сделать запрос в веб сервис с использованием xml? как подтянуть локальный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru