powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / SOAP сервис от Центробанка РФ
30 сообщений из 30, показаны все 2 страниц
SOAP сервис от Центробанка РФ
    #39116992
rgordeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня!
Кто-нибудь использовал сервис получения курса валют от нашего родного Центробанка?
Само описание сервиса здесь http://www.cbr.ru/scripts/Root.asp?PrtId=DWS
WSDL здесь http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL

При попытке импорта через wsimport валится ошибка
[ERROR] undefined element declaration ’s:schema’
поскольку на wildcard элементы any в wsdl указано
<s:sequence>
<s:element ref="s:schema"/>
<s:any/>
</s:sequence>

Поиски по сети особо ни к чему не привели. Все пишут, что с генерацией клиента для SOAP сервиса центробанка
средствами java проблемы, однако решений никто не дает.
Есть такая вот записка на эту тему
http://nikcode.blogspot.ru/2011/08/microsoft.html
Однако, самая суть - что в биндингах xjb там отсутствует (( Общение с автором тоже ничего не дало - статья старая, он уже ничего не помнит ((
Возможно, кто-нибудь все же решил проблему генерации клиента с помощью JAX-WS или AXIS и готов поделиться, за
что я бы был ему весьма благодарен.
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39117006
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgordeev,

Их wsdl создан в Visual Studio, как и сам сервис, а у Microsoft как водится всегда свои понятия о стандартах. Надо локальную копию этого wsdl вручную привести к понимаемому axis виду и потом сгенерить по нему web service consumer.
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39117009
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgordeev,

Ищите по форуму. Тут уже 3 или больше тем было с тем же вопросов. В одной из них я объяснял что нужно руками поменять в WSDL.
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39117015
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GarrickИх wsdl создан в Visual Studio, как и сам сервис, а у Microsoft как водится всегда свои понятия о стандартах.

Последнее время они, кстати, исправляются. Но вот с валидацией у них слабенько и юзвери могут в WSDL любую галиматью накликать.

GarrickНадо локальную копию этого wsdl вручную привести к понимаемому axis виду и потом сгенерить по нему web service consumer.
Axis тут вообще не при чем. Надо скачать WSDL, сначала прогнать валидатором, исправить ошибки, а затем уже wsimport пробовать и править ошибки, которые он показывает. В большинстве случаев можно просто <s:element ref="s:schema"/> удалить.
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39117019
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39117044
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И. кстати, только что попробовал AXIS 1.4 немного поругался "schema already exists", но классы сгенерил. А вот wsimport генерить отказывается - говорит "кривой у вас wsdl". :)
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39117068
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Garrick,

Axis 1.4 что-то генерить умеет? Мне казалось Axis 1.x сугубо на строках работает. Ему пофигу что там вообще в WSDL.
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39117092
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczGarrick,

Axis 1.4 что-то генерить умеет? Мне казалось Axis 1.x сугубо на строках работает. Ему пофигу что там вообще в WSDL.

WSDL2Java: Building stubs, skeletons, and data types from WSDL
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39117893
rgordeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за советы!
В общем импортировал я все это добро утилитой wsimport, добавив биндинг
Код: java
1.
wsimport -d src/main/java/ -p cbr.client -b http://www.w3.org/2001/XMLSchema.xsd -b customization.xjb -Xnocompile http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL


customization.xjb сделал вот таким
Код: xml
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.
<?xml version="1.0" encoding="UTF-8"?>
<bindings xmlns="http://java.sun.com/xml/ns/jaxb"
          xmlns:xsd="http://www.w3.org/2001/XMLSchema"
          xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
          version="2.0">

    <globalBindings>
        <xjc:simple/>
    </globalBindings>

    <bindings scd="~xsd:complexType">
        <class name="ComplexTypeType"/>
    </bindings>

    <bindings scd="~xsd:simpleType">
        <class name="SimpleTypeType"/>
    </bindings>

    <bindings scd="~xsd:group">
        <class name="GroupType"/>
    </bindings>

    <bindings scd="~xsd:attributeGroup">
        <class name="AttributeGroupType"/>
    </bindings>

    <bindings scd="~xsd:element">
        <class name="ElementType"/>
    </bindings>

    <bindings scd="~xsd:attribute">
        <class name="attributeType"/>
    </bindings>
</bindings>


так же набросал небольшое приложение
https://github.com/rgordeev/cbr
Однако, весьма печалит, что вызов метода сервиса
Код: java
1.
GetCursOnDateXMLResponse.GetCursOnDateXMLResult result = service.getCursOnDateXML(date);


возвращет объект GetCursOnDateXMLResult в котором метод getContent() возвращает список с единственным элементом
ElementNSImpl, в котором можно получить узлы getElementsByTagName и в цикле все это добро обрабатывать.
Хочется же преобразовать все это в source scala и разбирать партером Scala
Код: java
1.
2.
3.
4.
XhtmlParser(source) \\ "root" map( c =>
            Currency(
                c \ "@Vname" text,
                c \ "@VchCode" text,
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39118216
rgordeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Garrick,
доброго дня!

А при генерации клинта Аксисом методы доспупа тоже будут возвращать уже разобранный ответ сервера?
То есть опять будет структура из ElementNSImpl элементов, по которую нужно бегать, или ответ будет в какой-то другой форме?
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39118624
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgordeevGarrick,
доброго дня!

А при генерации клинта Аксисом методы доспупа тоже будут возвращать уже разобранный ответ сервера?
То есть опять будет структура из ElementNSImpl элементов, по которую нужно бегать, или ответ будет в какой-то другой форме?

Ну, так у них же написано:
Методы веб - сервиса, названия которых оканчиваются на XML, возвращают данные в формате "простых" XML документов без использования схем и предназначены для систем построенных не на платформе .NET Framework.
Может стоит попробовать метод без XML? По описанию getCursOnDate(java.util.Calendar on_date) возвращает GetCursOnDateResponseGetCursOnDateResult , а не XML.
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39118636
Dim666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GarrickМожет стоит попробовать метод без XML? По описанию getCursOnDate(java.util.Calendar on_date) возвращает GetCursOnDateResponseGetCursOnDateResult , а не XML.Эти методы для .NET предназначены. Там они возвращают таблицы. И код там соответственно очень простой...
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
DataTable dt = DailyInfoClient.Client.GetCursOnDate(p_Date).Tables["ValuteCursOnDate"];

List<Rate> list = new List<Rate>();
foreach (DataRow r in dt.Rows)
{
	var c = new Rate
	{
		Currency = Convert.ToInt32(r["Vcode"].ToString()),
		RateValue = Convert.ToDecimal(r["Vcurs"].ToString())
	};
	list.Add(c);
}
return list;

...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39118666
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim666,
Ну, есть же известные способы борьбы с этим злом. Погуглите что-нибудь тип "parsing .NET dataset from java"
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39118708
rgordeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Garrick,
возможно я открою Вам секрет, но методы без XML в конверте получают тоже, сюрприз, XML
Вот такой ответ приходит
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
---[HTTP response - http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx - 200]---
null: HTTP/1.1 200 OK
Cache-Control: no-cache
Connection: keep-alive
Content-Length: 16199
Content-Type: text/xml; charset=utf-8
Date: Wed, 02 Dec 2015 10:33:56 GMT
Expires: -1
Pragma: no-cache
Server: nginx/1.4.6 (Ubuntu)
X-AspNet-Version: 2.0.50727
X-Powered-By: ASP.NET
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><GetCursOnDateResponse xmlns="http://web.cbr.ru/"><GetCursOnDateResult><xs:schema id="ValuteData" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop"><xs:element name="ValuteData" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:OnDate="20151128"><xs:complexType><xs:choice minOccurs="0" maxOccurs="unbounded"><xs:element name="ValuteCursOnDate"><xs:complexType><xs:sequence><xs:element name="Vname" type="xs:string" minOccurs="0" /><xs:element name="Vnom" type="xs:decimal" minOccurs="0" /><xs:element name="Vcurs" type="xs:decimal" minOccurs="0" /><xs:element name="Vcode" type="xs:int" minOccurs="0" /><xs:element name="VchCode" type="xs:string" minOccurs="0" /></xs:sequence></xs:complexType></xs:element></xs:choice></xs:complexType></xs:element></xs:schema><diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"><ValuteData xmlns=""><ValuteCursOnDate diffgr:id="ValuteCursOnDate1" msdata:rowOrder="0"><Vname>Австралийский доллар                                                                                                                                                                                                                                          </Vname><Vnom>1</Vnom><Vcurs>47.7983</Vcurs><Vcode>36</Vcode><VchCode>AUD</VchCode></ValuteCursOnDate><ValuteCursOnDate diffgr:id="ValuteCursOnDate2" msdata:rowOrder="1"><Vname>Азербайджанский манат                                                                                                                                                                                                                                         </Vname><Vnom>1</Vnom><Vcurs>63.2960</Vcurs><Vcode>944</Vcode><VchCode>AZN</VchCode></ValuteCursOnDate><ValuteCursOnDate diffgr:id="ValuteCursOnDate3" msdata:rowOrder="2"><Vname>Фунт стерлингов Соединенного королевства                                                                                                                                                                                                                      </Vname><Vnom>1</Vnom><Vcurs>99.9352</Vcurs><Vcode>826</Vcode><VchCode>GBP</VchCode></ValuteCursOnDate><ValuteCursOnDate diffgr:id="ValuteCursOnDate4" msdata:rowOrder="3"><Vname>Армянский драм                                                                                                                                                                                                                                                </Vname><Vnom>100</Vnom><Vcurs>13.7426</Vcurs><Vcode>51</Vcode><VchCode>AMD</VchCode></ValuteCursOnDate><ValuteCursOnDate diffgr:id="ValuteCursOnDate5" msdata:rowOrder="4"><Vname>Белорусский рубль                                                                                                                                                                                                                                             </Vname><Vnom>10000</Vnom><Vcurs>36.4373</Vcurs><Vcode>974</Vcode><VchCode>BYR</VchCode></ValuteCursOnDate><ValuteCursOnDate diffgr:id="ValuteCursOnDate6" msdata:rowOrder="5"><Vname>Болгарский лев                                                                                                                                                                                                                                                </Vname><Vnom>1</Vnom><Vcurs>35.9508</Vcurs><Vcode>975</Vcode><VchCode>BGN</VchCode></ValuteCursOnDate><ValuteCursOnDate diffgr:id="ValuteCursOnDate7" msdata:rowOrder="6"><Vname>Бразильский реал                              


просто как и говорится в сообщении, выделенном курсивом, этот ответ содержит еще и схему, позволяющую клиенту на dot net его более эффективно разбирать. Для клиента на java эти вкропления схемы в каждый атрибут будут только мешать ))
Меня же интересует вот такой момент. При вызове метода сгенерированного клиента я получаю уже разобранный ответ, то есть набор элементов ElementNSImpl при чем оно не плоское в том смысле, что приходится делать как обход по узлам-тегам, так и по узлам-атрибутам, что порождает вложенные неприятные циклы. А хочется все делать по феншую так сказать, вот чего я хочу добиться ))
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39118717
rgordeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Garrick,
на самом деле можно заморочиться и самому формировать SOAP запросы и разбирать ответы как-нибудь
вот так
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SOAPMessage soapMessage = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL).createMessage();
SOAPPart part = soapMessage.getSOAPPart();
SOAPEnvelope envelope = part.getEnvelope();
SOAPBody body = envelope.getBody();
Name bodyName = envelope.createName("AllDataInfoXML", null, "http://web.cbr.ru/");
body.addBodyElement(bodyName);
soapMessage.saveChanges();

String destination = "http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx";
SOAPConnectionFactory soapConnFactory = SOAPConnectionFactory.newInstance();
SOAPConnection connection = soapConnFactory.createConnection();
SOAPMessage reply = connection.call(soapMessage, destination);


но блин, неужели в 21 веке нужно еще нужно писать кучу г на простую задачу получения плоской таблички ((
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39118823
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgordeev,

У вас есть два простых способа:
1. там где в wsdl написано
Код: xml
1.
2.
3.
4.
5.
6.
<s:complexType>
    ...
      <s:element ref="s:schema"/>
      <s:any/>
       ...
</s:complexType> 


Опишите тип возвращаемого значения как положено по стандарту. Тогда wsdl2java или wsimport сгенерят вам правильный набор классов и вы будете получать в ответ не длинную XML строку, а набор объектов Java.

2. Отредактируйте сгенерённые классы таким образом, чтобы при возврате запроса эта XML строка парсилась и возвращался вместо неё какой-нибудь List, а лучше Map если вам потом из этой кучи надо отобрать какие-то типы валют.
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39118825
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgordeev,

... ну и сами понимаете кого надо благодарить за весь этот геморрой.
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39118849
rgordeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Garrick,
а что тут положено по стандарту? Какой тип нужно вешать на wildcard?
Код: xml
1.
2.
3.
4.
5.
6.
<s:complexType>
    ...
      <s:element ref="s:schema"/>
      <s:any/>
       ...
</s:complexType>


Мне кажется элемент schama тут исключительно для .net клиентов, которые используют при разборе еще и
схему. Вот генерированный объект ответа для клиентов .net
https://github.com/rgordeev/cbr/blob/master/src/main/java/cbr/client/GetCursDynamicResponse.java

Ну и кроме того, вызов соответствующего метода клиента вовсе не возвращает строку, как я и писал выше,
ответ разбирается ксерксом в набор связанных ElementImpl.
Собственно генерированный объект ответа для всех остальных клиентов, отличных от .net, вот
https://github.com/rgordeev/cbr/blob/master/src/main/java/cbr/client/GetCursOnDateXMLResponse.java
Только как его можно поправить, чтобы иметь возможность получить какую-либо другую структуру данный в ответ?
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39119154
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgordeevGarrick,
а что тут положено по стандарту? Какой тип нужно вешать на wildcard?

У вас же есть схема с описанием, вы сами её привели в своём сообщении SOAP сервис от Центробанка РФ . Последняя строка состоит из описания схемы и следующим за ней набором данных. И это два разных элемента, что упрощает разбор.

Попробуйте пропустить её через JAXB/XJC оно вам ещё и Java классы нагенерит для этой структуры.

rgordeevМне кажется элемент schama тут исключительно для .net клиентов, которые используют при разборе еще и
схему.


Ну, да. И что в этом страшного? Оно же не в каком-то неизвестном бинарном файле данные возвращает, а в XML. Вполне читаемо. Через ж... конечно и не соответствует стандарту, но с M$ всегда так.
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39119308
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
там в any лежит элемент вида
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<diffgr:diffgram xmlns="http://web.cbr.ru/" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"
  xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
  <ValuteData xmlns="">
    <ValuteCursOnDate diffgr:id="ValuteCursOnDate1" msdata:rowOrder="0">
      <Vname>Австралийский доллар                                                                                                                                                                                                                                          </Vname>
      <Vnom>1</Vnom>
      <Vcurs>48.8271</Vcurs>
      <Vcode>36</Vcode>
      <VchCode>AUD</VchCode>
    </ValuteCursOnDate>
    <ValuteCursOnDate diffgr:id="ValuteCursOnDate2" msdata:rowOrder="1">
      <Vname>Азербайджанский манат                                                                                                                                                                                                                                         </Vname>
      <Vnom>1</Vnom>
      <Vcurs>63.4956</Vcurs>
      <Vcode>944</Vcode>
      <VchCode>AZN</VchCode>
    </ValuteCursOnDate>
...
  </ValuteData>
</diffgr:diffgram>


можно в принципе по описаниям ответов на сайте наделать классов и для нужных функций заменить any на эти классы, чтобы сразу разбиралось
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39119436
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanraтам в any лежит элемент вида

Это уже данные, а перед ними схема должна быть
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<xs:schema id="ValuteData" xmlns=""
	xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
	xmlns:msprop="urn:schemas-microsoft-com:xml-msprop">
	<xs:element name="ValuteData" msdata:IsDataSet="true"
		msdata:UseCurrentLocale="true" msprop:OnDate="20151202">
		<xs:complexType>
			<xs:choice minOccurs="0" maxOccurs="unbounded">
				<xs:element name="ValuteCursOnDate">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="Vname" type="xs:string" minOccurs="0" />
							<xs:element name="Vnom" type="xs:decimal" minOccurs="0" />
							<xs:element name="Vcurs" type="xs:decimal" minOccurs="0" />
							<xs:element name="Vcode" type="xs:int" minOccurs="0" />
							<xs:element name="VchCode" type="xs:string" minOccurs="0" />
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:choice>
		</xs:complexType>
	</xs:element>
</xs:schema>
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39119601
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Garrick,
то, что схема передается в ответе, нам не поможет. Все эти классы надо сформировать заранее.
Например:
ValuteData
Код: java
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.
@XmlType
@XmlAccessorType(XmlAccessType.FIELD)
public class ValuteData {
	@XmlAccessorType(XmlAccessType.FIELD)
	public static class ValuteCursOnDate {
		@XmlElement(name="Vname")
		private String name;
		@XmlElement(name="Vnom")
		private BigDecimal nom;
		@XmlElement(name="Vcurs")
		private BigDecimal curs;
		@XmlElement(name="Vcode")
		private int code;
		@XmlElement(name="VchCode")
		private String chCode;
		// getters and setters

	}
	
	@XmlElementWrapper(name="ValuteData")
	@XmlElement(name="ValuteCursOnDate")
	private List<ValuteCursOnDate> rows = new ArrayList<ValuteCursOnDate>();
	public List<ValuteCursOnDate> getRows() {
		return rows;
	}
	public void setRows(List<ValuteCursOnDate> rows) {
		this.rows = rows;
	}
}



теперь в класс GetCursOnDateResult можно внести следующие изменения
GetCursOnDateResult
Код: java
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.
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "any"
    })
    public static class GetCursOnDateResult {
/* было
        @XmlAnyElement(lax = true)
        protected Object any;
        public Object getAny() {
            return any;
        }
        public void setAny(Object value) {
            this.any = value;
        }*/
/* стало */
        @XmlElement(name="diffgram",namespace="urn:schemas-microsoft-com:xml-diffgram-v1")
    	protected ValuteData any;
		public ValuteData getAny() {
			return any;
		}
		public void setAny(ValuteData any) {
			this.any = any;
		}
	}
    }

(я бы еще это any переименовал в какой-нибудь "dataset", соответственно надо переименовать и в propOrder)

после этого можно работать непосредственно со списком:
Код: java
1.
2.
3.
4.
		DailyInfo service1 = new DailyInfo();
		DailyInfoSoap port1 = service1.getDailyInfoSoap();
		GetCursOnDateResult result = port1.getCursOnDate(date);
		result.getAny().getRows(); // <- тут курсы валют
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39119621
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanraGarrick,
то, что схема передается в ответе, нам не поможет. Все эти классы надо сформировать заранее.

Да, конечно. Вопрос был, как я понял, "где взять описание этих классов", поэтому я указал на схему, которая передаётся в заголовке DataSet.
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39119624
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...хотя XJC может и классы сгенерить по схеме, надо только скопилить их и подсунуть своей программе.
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39119689
rgordeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ivanra,

о, спасибо, буду пробовать
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39119775
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rgordeevivanra,
о, спасибо, буду пробовать
Поскольку там нет статических импортов, и схемы передаются прямо в ответе, то можно включить логирование SOAP запросов и выцепить xsd из логов. Проще всего логирование включить с помощью системных свойств (какое-то из них должно сработать)
Код: java
1.
2.
3.
4.
System.setProperty("com.sun.xml.ws.transport.http.client.HttpTransportPipe.dump", "true");
System.setProperty("com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.dump", "true");
System.setProperty("com.sun.xml.ws.transport.http.HttpAdapter.dump", "true");
System.setProperty("com.sun.xml.internal.ws.transport.http.HttpAdapter.dump", "true");
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39159978
sg82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Подскажите пожалуйста как передать параметры сервису Data101FullExXML ( http://www.cbr.ru/CreditInfoWebServ/CreditOrgInfo.asmx?op=Data101FullExXML)?

Номера кредитных организаций непонятно как устанавливаются:
<CredorgNumbers>
<anyType />
<anyType />
</CredorgNumbers>

С уважением,
Сергей
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39160239
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg82,

http://www.cbr.ru/scripts/Root.asp?PrtId=WSCO ?
Только какая из XSD-шек Вам поможет, не могу сказать (:
...
Рейтинг: 0 / 0
SOAP сервис от Центробанка РФ
    #39160241
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
SOAP сервис от Центробанка РФ
    #40039423
denya43
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
https://github.com/Denya43/rateParcer

вот такое простое приложение соорудил, для запроса и записи в бд постгресс
...
Рейтинг: 0 / 0
30 сообщений из 30, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / SOAP сервис от Центробанка РФ
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]