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

Web Service Consumer

12.07.2012, 16:59. Показов 14214. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При вызове ошибка. Кто встречал?

Web Service ** method ** error Error invoking operation:
javax.xml.rpc.JAXRPCException: number of parameters passed in (14) doesnt match the number of IN/INOUT parameters (16) from the addParameter() calls.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.07.2012, 16:59
Ответы с готовыми решениями:

WSDL-Web Service Consumer
Втянул wsdl через Web Service Consumer. Как теперь подключить эту библиотеку в java-агент? Можно ли работать с библиотекой, если ее...

Проблема с web service consumer
Добрый день, коллеги! Имеется web service consumer: В итоге, когда вызываю сервис Function getprodmod(lotusID As XSD_STRING) As...

Lotus Web Service Consumer + Http Авторизация - Как?
Здравия всем! Возникла необходимость подключить Lotus к веб-сервису 1С. Для доступа к сервису необходима стандартная http-авторизация...

9
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
12.07.2012, 17:22
и?
Ну правильное кол-во входящих/исходящих параметров
0
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
12.07.2012, 17:42
После импрота wsdl web-сервис не менялся?
0
0 / 0 / 0
Регистрация: 12.10.2007
Сообщений: 522
12.07.2012, 18:26
Цитата Сообщение от nvy
После импрота wsdl web-сервис не менялся?
Нет.
Причем через CreateObject("Microsoft.XMLHTTP") метод вызывается...(
0
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
13.07.2012, 15:50
Недавно мучился с веб-сервисами — жабовый отказывался подключаться через ls2j, лс-скриптовый не позволял "развернуть" сложную структуру возвращаемых данных. В итоге остановился на варианте с жаба-агентом, который сохраняет полученные данные в документе-запросе. Дополнительный плюс такого решения в том, что можно скрыть от пользователя логин/пароль провайдера веб-сервиса в настроечном документе, видимом только серверу и админу.
0
0 / 0 / 0
Регистрация: 12.10.2007
Сообщений: 522
16.07.2012, 17:03
Цитата Сообщение от nvy
лс-скриптовый не позволял "развернуть" сложную структуру возвращаемых данных. В итоге остановился на варианте с жаба-агентом, который сохраняет полученные данные в документе-запросе.
Спасибо, через java Web Service Consumer получилось.
0
1 / 1 / 0
Регистрация: 07.12.2009
Сообщений: 1,197
16.07.2012, 22:01
Цитата Сообщение от susinmn
Спасибо, через java Web Service Consumer получилось.
Информативно
0
0 / 0 / 0
Регистрация: 12.10.2007
Сообщений: 522
17.07.2012, 12:15
Цитата Сообщение от VladSh
Информативно :lol: :trash:
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Вот так выглядит Web Service Consumers Type=Java</div></div><div class="sp-body"><div class="sp-content">

Code
1
2
[ATTACH]5199.IPB[/ATTACH]
[ATTACH]5200.IPB[/ATTACH]
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Вот так выглядит UdwsSoapBindingStub.Java</div></div><div class="sp-body"><div class="sp-content">

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package com.sybase.ase.ws.udws1000.wsu_prc_f_credit_op_load3.ws;
 
public class UdwsSoapBindingStub extends lotus.domino.websvc.client.Stub implements com.sybase.ase.ws.udws1000.wsu_prc_f_credit_op_load3.ws.Udws_Port {
 
public UdwsSoapBindingStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws lotus.domino.types.Fault {
super(endpointURL, service);
}
 
public com.sybase.ase.ws.producer.DataReturn[] us_wsu_prc_f_credit_op_load(java.lang.String f_contr_name, int c_addtype, java.lang.String op_date_time, java.lang.String op_date_begin, java.lang.String op_date_end, float op_value_od, float op_value_prc, float op_value_comis, java.lang.String ln_address, int chislo, float sum_credit, int rate_type, int month_count, float eg_plat, javax.xml.rpc.holders.StringHolder notice_descr, java.lang.String username, java.lang.String password) throws java.rmi.RemoteException {
lotus.domino.websvc.client.Call _call = createCall("us_wsu_prc_f_credit_op_load");
java.lang.Object _resp = _call.invoke(new java.lang.Object[] {f_contr_name, new java.lang.Integer(c_addtype), op_date_time, op_date_begin, op_date_end, new java.lang.Float(op_value_od), new java.lang.Float(op_value_prc), new java.lang.Float(op_value_comis), ln_address, new java.lang.Integer(chislo), new java.lang.Float(sum_credit), new java.lang.Integer(rate_type), new java.lang.Integer(month_count), new java.lang.Float(eg_plat), username, password});
notice_descr.value = (java.lang.String) _call.convertOutputParam("", "notice_descr", java.lang.String.class);
return (com.sybase.ase.ws.producer.DataReturn[]) _call.convert(_resp, com.sybase.ase.ws.producer.DataReturn[].class);
}
 
}
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Вот так выглядит Udws_ServiceLocator.Java</div></div><div class="sp-body"><div class="sp-content">

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
package com.sybase.ase.ws.udws1000.wsu_prc_f_credit_op_load3.ws;
 
public class Udws_ServiceLocator extends lotus.domino.websvc.client.Service implements com.sybase.ase.ws.udws1000.wsu_prc_f_credit_op_load3.ws.Udws_Service {
 
public Udws_ServiceLocator() {
super("UrnWsWsu_prc_f_credit_op_load3Udws1000WsAseSybaseComudws");
}
 
// Use to get a proxy class for udws
private final java.lang.String udws_address = "http://xxx.xxx.xxx.xxx:xxxx/services/ws/wsu_prc_f_credit_op_load3";
 
public java.lang.String getUdwsAddress() {
return udws_address;
}
 
// The WSDD service name defaults to the port name.
private final java.lang.String UdwsWSDDServiceName = "udws.udws";
 
public com.sybase.ase.ws.udws1000.wsu_prc_f_credit_op_load3.ws.Udws_Port getUdws() throws javax.xml.rpc.ServiceException {
java.net.URL endpoint;
try {
endpoint = new java.net.URL(udws_address);
}
catch (java.net.MalformedURLException e) {
throw new javax.xml.rpc.ServiceException(e);
}
return getUdws(endpoint);
}
 
public com.sybase.ase.ws.udws1000.wsu_prc_f_credit_op_load3.ws.Udws_Port getUdws(java.net.URL portAddress) throws javax.xml.rpc.ServiceException {
try {
com.sybase.ase.ws.udws1000.wsu_prc_f_credit_op_load3.ws.UdwsSoapBindingStub _stub = new com.sybase.ase.ws.udws1000.wsu_prc_f_credit_op_load3.ws.UdwsSoapBindingStub(portAddress, thys);
_stub.setPortName(UdwsWSDDServiceName);
return _stub;
}
catch (lotus.domino.types.Fault e) {
return null;
}
}
 
/**
* For the given interface, get the stub implementation.
* If thys service has no port for the given interface,
* then ServiceException is thrown.
*/
public java.rmi.Remote getPort(Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
try {
if (com.sybase.ase.ws.udws1000.wsu_prc_f_credit_op_load3.ws.Udws_Port.class.isAs
signableFrom(serviceEndpointInterface)) {
com.sybase.ase.ws.udws1000.wsu_prc_f_credit_op_load3.ws.UdwsSoapBindingStub _stub = new com.sybase.ase.ws.udws1000.wsu_prc_f_credit_op_load3.ws.UdwsSoapBindingStub(new java.net.URL(udws_address), thys);
_stub.setPortName(UdwsWSDDServiceName);
return _stub;
}
}
catch (java.lang.Throwable t) {
throw new javax.xml.rpc.ServiceException(t);
}
throw new javax.xml.rpc.ServiceException("There is no stub implementation for the interface: " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName()));
}
 
/**
* For the given interface, get the stub implementation.
* If thys service has no port for the given interface,
* then ServiceException is thrown.
*/
public java.rmi.Remote getPort(javax.xml.namespace.QName portName, Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
if (portName == null) {
return getPort(serviceEndpointInterface);
}
String inputPortName = portName.getLocalPart();
if ("udws".equals(inputPortName)) {
return getUdws();
}
else {
java.rmi.Remote _stub = getPort(serviceEndpointInterface);
((lotus.domino.websvc.client.Stub) _stub).setPortName(portName);
return _stub;
}
}
 
public javax.xml.namespace.QName getServiceName() {
return new javax.xml.namespace.QName("urn:ws.wsu_prc_f_credit_op_load3.udws1000.ws.ase.sybase.com", "udws");
}
 
private java.util.HashSet ports = null;
 
public java.util.Iterator getPorts() {
if (ports == null) {
ports = new java.util.HashSet();
ports.add(new javax.xml.namespace.QName("udws"));
}
return ports.iterator();
}
 
}
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Java библиотека для вызова WSDL</div></div><div class="sp-body"><div class="sp-content">

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import javax.xml.rpc.holders.StringHolder;
 
import com.sybase.ase.ws.producer.DataReturn;
import com.sybase.ase.ws.udws1000.wsu_prc_f_credit_op_load3.ws.UdwsSoapBindingStub;
import com.sybase.ase.ws.udws1000.wsu_prc_f_credit_op_load3.ws.Udws_ServiceLocator;
 
public class FrontWSDL {
public String ExportToFront(String f_contr_name, int c_addtype, String op_date_time, String op_date_begin, String op_date_end, float op_value_od, float op_value_prc, float op_value_comis, String ln_address, int chislo, float sum_credit, int rate_type, int month_count, float eg_plat, String username, String password) {
try {
 
StringHolder notice_descr = new StringHolder();
 
UdwsSoapBindingStub stub = (UdwsSoapBindingStub) new Udws_ServiceLocator().getUdws();
DataReturn[] DataReturn = stub.us_wsu_prc_f_credit_op_load(f_contr_name, c_addtype, op_date_time, op_date_begin, op_date_end, op_value_od, op_value_prc, op_value_comis, ln_address, chislo,sum_credit, rate_type, month_count, eg_plat, notice_descr, username, password);
return notice_descr.value;
 
} catch(Exception e) {
e.printStackTrace();
}
return null;
}
}
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Java Agent для вызова метода библиотеки</div></div><div class="sp-body"><div class="sp-content">

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
import java.util.Date;
import java.util.Vector;
 
import java.text.*;
 
import lotus.domino.*;
 
public class JavaAgent extends AgentBase {
 
public void NotesMain() {
 
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
 
Database db = agentContext.getCurrentDatabase();
 
// Used for running agent on server with docID being passed from the calling action
Agent agent = agentContext.getCurrentAgent();
String paramid = agent.getParameterDocID();
Document doc = db.getDocumentByID(paramid);
 
SimpleDateFormat mmyyyymmdd;
Date dt;
Vector times;
Object time;
 
String f_contr_name = "";
int c_addtype = 0;
String op_date_time = "";
String op_date_begin = "";
String op_date_end = "";
float op_value_od = 0;
float op_value_prc = 0;
float op_value_comis = 0;
String ln_address = "";
int chislo = 0;
float sum_credit = 0;
int rate_type = 0;
int month_count = 0;
float eg_plat = 0;
String ResponseText = "";
String username = "";
String password = "";
 
f_contr_name=doc.getItemValueString("Dogovor_N");
times = doc.getItemValueDateTimeArray("Dop_solg");
 
time = times.elementAt(0);
if (time.getClass().getName().endsWith("DateTime")) {
mmyyyymmdd = new SimpleDateFormat("yyyyMMdd");
dt = session.createDateTime(((DateTime)time).getLocalTime()).toJavaDate();
op_date_time = mmyyyymmdd.format(dt);
System.out.println("op_date_time: "+op_date_time);
}
ln_address=doc.getItemValueString("LN_For_Front");
username="xxx";
password="xxxxxxx";
 
if (doc.getItemValueString("Tip").equals("1")) {
c_addtype=1;
System.out.println("c_addtype: "+c_addtype);
//op_date_begin
times = doc.getItemValueDateTimeArray("Data");
time = times.elementAt(0);
if (time.getClass().getName().endsWith("DateTime")) {
mmyyyymmdd = new SimpleDateFormat("yyyyMMdd");
dt = session.createDateTime(((DateTime)time).getLocalTime()).toJavaDate();
op_date_begin = mmyyyymmdd.format(dt);
System.out.println("op_date_begin: "+op_date_begin);
}
chislo=doc.getItemValueInteger("Chislo");
System.out.println("chislo: "+chislo);
}
.............
 
FrontWSDL stub = (FrontWSDL) new FrontWSDL();
ResponseText = stub.ExportToFront(f_contr_name, c_addtype, op_date_time, op_date_begin, op_date_end, op_value_od, op_value_prc, op_value_comis, ln_address, chislo, sum_credit, rate_type, month_count, eg_plat, username, password);
System.out.println(ResponseText);
doc.replaceItemValue("Front_Info", ResponseText);
doc.save(true, false);
 
} catch(Exception e) {
e.printStackTrace();
}
}
}
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">вызов jAgent*а</div></div><div class="sp-body"><div class="sp-content">

Код (Text):
Dim ws As New NotesUiWorkspace
Dim s As New NotesSession
Dim db As NotesDatabase
Dim jAgent As NotesAgent
Dim uidoc As NotesUiDocument
Dim doc As NotesDocument
Dim DocForJavaAgent As NotesDocument

Set db = s.CurrentDatabase
Set uidoc = ws.CurrentDocument
Set doc = uidoc .Document
Set jAgent = db.GetAgent("ExportToFrontJavaAgent")

Set DocForJavaAgent=db.CreateDocument
DocForJavaAgent.Form="DocForJavaAgent"
Call DocForJavaAgent.ReplaceItemValue("$Publi cAccess","1")
DocForJavaAgent.Front_Info="Ошибка вызова метода, обратитесь к разработчикам"

Call PasteFieldDocForJavaAgent(DocForJavaAgen t, doc, s.UserName) запись данных в промежуточный документ

Call DocForJavaAgent.MakeResponse(doc)
Call DocForJavaAgent.Save(1,0)

Call jAgent.Run(DocForJavaAgent.NoteID)

DocForJavaAgentUnid=DocForJavaAgent.Univ ersalID
Delete DocForJavaAgent
Set DocForJavaAgent=db.GetDocumentByUNID(Doc ForJavaAgentUnid)

If DocForJavaAgent.Front_Info(0)<>"" Then
Messagebox DocForJavaAgent.Front_Info(0), 16, "Внимание!"
Exit Sub
End If
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
17.07.2012, 13:55
небольшое отступление... (просто для общей информации, тем кто поленился вникать, про веб сервисы :trash: )
очень упрощённо
веб сервисы как таковые - некое соглашение о передаче инфы, кот. (инфу) передают поверх http (часто)
формат данных - xml
для "удобства" делают обертки - хмл заворачивают в классы и контролируют ошибки (это уже привязано к конкретной реализации в ЯП)
тем не менее - ничего не мешает организовать обмен поверх хттп хмл-ом... :lol:
0
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
17.07.2012, 14:23
Code
1
тем не менее - ничего не мешает организовать обмен поверх хттп хмл-ом... wink.gif
Делал таким образом, пока провайдер предоставлял веб-сервис с одной функцией, принимающей пять параметров простого типа (строка) и возвращающего строку. Когда провайдер сменил АПИ (у веб-сервиса стало с десяток функций, возвращающих сложные структуры данных) писать код в ручную стало ну очень лениво, тем более, что при импорте wsdl-файла Lotus сам генерирует удобную библиотеку (для Java). Если бы её ещё можно было через LS2J цеплять, было бы совем замечательно :trash:.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.07.2012, 14:23
Помогаю со студенческими работами здесь

Web service consumer ошибка при отсылки больших пакетов
Всем привет и сразу к теме. Есть Web Service который крутится на TomCat сервере. В Lotus Notes сделан его клиент (подсунут WSDL и...

Подключить Java Web-servece Consumer Через Ls2j
Здравия всем! Столкнулся с такой проблемой — есть web-service consumer на java, есть его класс-&quot;обёртка&quot; на java, есть...

Web Service
Всем привет! Вопрос следующий: Когда вызываю сервис (для теста через лотусиного агента) и указываю параметры начинает ругатся на...

Web Service
Всем доброго времени суток. Работаю с 6.5 лотусом... Вычитал вот данную вещь даже забыл где уже... помоему в жж у кого то из форума)) ...

Web Service
Хай, пипл! Не раз убеждаюсь, что это лучший форум во всемирной паутине. Я написал просто веб-сервис с функцией выкладывания файлов в...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru