Текущее время: Вс, апр 30 2017, 09:07

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 38 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: Ошибка при парсинге ответа WEB-сервиса
СообщениеДобавлено: Пт, мар 04 2016, 12:53 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 09:54
Сообщения: 317
Откуда: Владивосток, Россия
Пол: Мужской
Блин, только что заметил. У вас в debug кавычки, а там int. Попробуйте убрать в мэппинге.

_________________
У меня два правила:
1. Не говорить всего, что знаю.


Последний раз редактировалось Chaser009 Ср, мар 09 2016, 08:57, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при парсинге ответа WEB-сервиса
СообщениеДобавлено: Пт, мар 04 2016, 14:24 
Ассистент
Ассистент

Зарегистрирован:
Ср, дек 16 2015, 15:30
Сообщения: 33
Chaser009 писал(а):
Ну если разбираться некогда, попробуйте у себя а в xslt подменить корневой тэг сообщения на Get_Info, как в request в soap ui, и проверьте, что получится.


Так и сделал. Согласно журналам теперь никаких ошибок нет - сообщение уходит, ответ возвращается. Однако в ERP генерится исключение CX_AI_SYSTEM_FAULT и get_text( ) выводит:
Цитата:
PARSE_APPLICATION_DATA Error during XML => ABAP conversion: Response Message; CX_ST_MATCH_ELEMENT in /1SAI/TXSC5DE0BBD404F9D8EFD56 Line 17 Элемент '{urn:my:service:fieldclimate}UserGetInfoResponse' ожидается XML Bytepos.: 827 XML Path:

Насколько понял - прокси не может распарсить пришедший ответ. Мэпинги все проверил. По тесту беру исходящее сообщение, проверяю через SOAP UI, беру ответ сервиса, вставляю в тест ответа - мэпится хорошо и красиво. То есть мэпинги верно настроены.

В чем может быть проблема? Можно ли как нибудь отловить, что именно приходит после мэпинга к прокси?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при парсинге ответа WEB-сервиса
СообщениеДобавлено: Пт, мар 04 2016, 14:26 
Ассистент
Ассистент

Зарегистрирован:
Ср, дек 16 2015, 15:30
Сообщения: 33
Chaser009 писал(а):
Блин, только что заметил. У вас в debug кавычки, а там int. Попробуйте убрать в мэппинге. А менять заголовок сообщения не надо. Может, из-за этого.

Про soap iu я затупил, по-моему, он так и формирует, без Request. Перед глазами сейчас нет, сравнить не с чем.

Да, судя по всему, так и должно быть. Soap UI Request обрезает.


Кавычки в Debug - это описка моя) Там их нет на самом деле.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при парсинге ответа WEB-сервиса
СообщениеДобавлено: Пт, мар 04 2016, 14:44 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 09:54
Сообщения: 317
Откуда: Владивосток, Россия
Пол: Мужской
Обратный мэппинг чем делаете? XSLT или графический?
Скорее всего, парсеру прокси назад приходит кривое сообщение.
Выложите ответное сообщение после мэппинга и структуру ответного сообщения, описанную в интерфейсе.

_________________
У меня два правила:
1. Не говорить всего, что знаю.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при парсинге ответа WEB-сервиса
СообщениеДобавлено: Пт, мар 04 2016, 15:01 
Ассистент
Ассистент

Зарегистрирован:
Ср, дек 16 2015, 15:30
Сообщения: 33
Chaser009 писал(а):
Обратный мэппинг чем делаете? XSLT или графический?
Скорее всего, парсеру прокси назад приходит кривое сообщение.
Выложите ответное сообщение после мэппинга и структуру ответного сообщения, описанную в интерфейсе.


Оба мэпинга XSLT.

Ответное сообщение сервиса:
Код:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://metos.at">
   <SOAP-ENV:Body>
      <ns1:cidiuser_GetInfoResponse xmlns:ns1="http://schemas.xmlsoap.org/wsdl/">
         <return xsi:type="tns:struct_cidiuser_GetInfoData">
            <DataSetMain xsi:type="tns:DataSetStruct">
               <ReturnDataInfo xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:StructReturnDataInfo[1]">
                  <item xsi:type="tns:StructReturnDataInfo">
                     <s_name xsi:type="xsd:string">f_user_last_date</s_name>
                     <s_type xsi:type="xsd:string">xsd:string</s_type>
                     <s_flags xsi:type="xsd:int">0</s_flags>
                     <s_value xsi:type="xsd:string">4</s_value>
                  </item>
               </ReturnDataInfo>
               <ReturnRecordSetInfo xsi:type="tns:StructRecordSetInfo">
                  <s_field_count xsi:type="xsd:int">1</s_field_count>
                  <s_row_count xsi:type="xsd:int">1</s_row_count>
               </ReturnRecordSetInfo>
               <ReturnDataSet xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[1]">
                  <item xsi:type="xsd:string">2015-11-20 09:30:45.259777</item>
               </ReturnDataSet>
            </DataSetMain>
         </return>
      </ns1:cidiuser_GetInfoResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<!---->


Оно же после мэпинга:
Код:
<?xml version="1.0" encoding="UTF-8"?>
<UserGetInfoResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://metos.at" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/">
   <DataSetMain>
      <ReturnDataInfo>
         <RDataInfo>
            <s_name>f_user_last_date</s_name>
            <s_type>xsd:string</s_type>
            <s_flags>0</s_flags>
            <s_value>4</s_value>
         </RDataInfo>
      </ReturnDataInfo>
      <ReturnRecordSetInfo>
         <s_field_count>1</s_field_count>
         <s_row_count>1</s_row_count>
      </ReturnRecordSetInfo>
      <ReturnDataSet>
         <RDataSet>2015-11-20 09:30:45.259777</RDataSet>
      </ReturnDataSet>
   </DataSetMain>
</UserGetInfoResponse>


При запуске теста, кстати, каждый раз ESR спрашивает:
Изображение

Не знаю, важно ли это (в XSLT файлах чарсет прописан), но факт.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при парсинге ответа WEB-сервиса
СообщениеДобавлено: Пт, мар 04 2016, 15:09 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 09:54
Сообщения: 317
Откуда: Владивосток, Россия
Пол: Мужской
Хотелось бы увидеть не тест, а то, что в PI в рантайме приходит назад.

_________________
У меня два правила:
1. Не говорить всего, что знаю.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при парсинге ответа WEB-сервиса
СообщениеДобавлено: Пт, мар 04 2016, 15:10 
Ассистент
Ассистент

Зарегистрирован:
Ср, дек 16 2015, 15:30
Сообщения: 33
Chaser009 писал(а):
Хотелось бы увидеть не тест, а то, что в PI в рантайме приходит назад.

А как это можно увидеть? )


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при парсинге ответа WEB-сервиса
СообщениеДобавлено: Пт, мар 04 2016, 15:15 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 09:54
Сообщения: 317
Откуда: Владивосток, Россия
Пол: Мужской
Версия PI какая?

_________________
У меня два правила:
1. Не говорить всего, что знаю.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при парсинге ответа WEB-сервиса
СообщениеДобавлено: Пт, мар 04 2016, 15:17 
Ассистент
Ассистент

Зарегистрирован:
Ср, дек 16 2015, 15:30
Сообщения: 33
Chaser009 писал(а):
Версия PI какая?

7.40


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при парсинге ответа WEB-сервиса
СообщениеДобавлено: Пт, мар 04 2016, 15:18 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 09:54
Сообщения: 317
Откуда: Владивосток, Россия
Пол: Мужской
Dual stack?
Делаете обычный сценарий или Integrated Configuration?

_________________
У меня два правила:
1. Не говорить всего, что знаю.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при парсинге ответа WEB-сервиса
СообщениеДобавлено: Пт, мар 04 2016, 15:19 
Ассистент
Ассистент

Зарегистрирован:
Ср, дек 16 2015, 15:30
Сообщения: 33
Chaser009 писал(а):
Dual stack?
Делаете обычный сценарий или Integrated Configuration?


Dual Stack.

В Integration Directory согласно этому настроил Sender Agreement, Receiver Agreement и Interface Determination. Все. Без Integrated Configuration.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при парсинге ответа WEB-сервиса
СообщениеДобавлено: Пт, мар 04 2016, 15:28 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 09:54
Сообщения: 317
Откуда: Владивосток, Россия
Пол: Мужской
В абап-части, в sap gui, транзакция sxi_monitor
Естественно, в pi-системе.

_________________
У меня два правила:
1. Не говорить всего, что знаю.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при парсинге ответа WEB-сервиса
СообщениеДобавлено: Пт, мар 04 2016, 15:41 
Ассистент
Ассистент

Зарегистрирован:
Ср, дек 16 2015, 15:30
Сообщения: 33
Chaser009 писал(а):
В абап-части, в sap gui, транзакция sxi_monitor
Естественно, в pi-системе.


UPD. Не в той системе смотрел. Один момент.

Ответное сообщение из этой транзакции:
Код:
<?xml version="1.0" encoding="UTF-8"?>

-<UserGetInfoResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://metos.at" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/">
-<DataSetMain>
  -<ReturnDataInfo>
    -<RDataInfo>
      <s_name>f_user_last_date</s_name>
      <s_type>xsd:string</s_type>
      <s_flags>0</s_flags>
      <s_value>4</s_value>
    </RDataInfo>
  </ReturnDataInfo>
  -<ReturnRecordSetInfo>
    <s_field_count>1</s_field_count>
    <s_row_count>1</s_row_count>
  </ReturnRecordSetInfo>
  -<ReturnDataSet>
    <RDataSet>2015-11-20 09:30:45.259777</RDataSet>
  </ReturnDataSet>
</DataSetMain>
</UserGetInfoResponse>


Структура этого сообщения:
Код:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:my:service:fieldclimate" targetNamespace="urn:my:service:fieldclimate">
   <xsd:element name="UserGetInfoResponse" type="struct_cidiuser_GetInfoData" />
   <xsd:complexType name="SequenceOfStrings">
      <xsd:sequence>
         <xsd:element name="RDataSet" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
      </xsd:sequence>
   </xsd:complexType>
   <xsd:complexType name="struct_cidiuser_GetInfoData">
      <xsd:sequence>
         <xsd:element name="DataSetMain" type="DataSetStruct" />
      </xsd:sequence>
   </xsd:complexType>
   <xsd:complexType name="SequenceOfReturnDataInfo">
      <xsd:sequence>
         <xsd:element name="RDataInfo" type="StructReturnDataInfo" maxOccurs="unbounded" />
      </xsd:sequence>
   </xsd:complexType>
   <xsd:complexType name="StructRecordSetInfo">
      <xsd:sequence>
         <xsd:element name="s_field_count" type="xsd:integer" />
         <xsd:element name="s_row_count" type="xsd:integer" />
      </xsd:sequence>
   </xsd:complexType>
   <xsd:complexType name="DataSetStruct">
      <xsd:sequence>
         <xsd:element name="ReturnDataInfo" type="SequenceOfReturnDataInfo" />
         <xsd:element name="ReturnRecordSetInfo" type="StructRecordSetInfo" />
         <xsd:element name="ReturnDataSet" type="SequenceOfStrings" />
      </xsd:sequence>
   </xsd:complexType>
   <xsd:complexType name="StructReturnDataInfo">
      <xsd:sequence>
         <xsd:element name="s_name" type="xsd:string" />
         <xsd:element name="s_type" type="xsd:string" />
         <xsd:element name="s_flags" type="xsd:integer" />
         <xsd:element name="s_value" type="xsd:string" />
      </xsd:sequence>
   </xsd:complexType>
</xsd:schema>


Оно же визуально:
Изображение


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при парсинге ответа WEB-сервиса
СообщениеДобавлено: Пт, мар 04 2016, 16:09 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 09:54
Сообщения: 317
Откуда: Владивосток, Россия
Пол: Мужской
После мэппинга сообщение в мониторе можно? Вы исходное выложили, которое от сервиса прилетело

_________________
У меня два правила:
1. Не говорить всего, что знаю.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при парсинге ответа WEB-сервиса
СообщениеДобавлено: Пт, мар 04 2016, 16:23 
Ассистент
Ассистент

Зарегистрирован:
Ср, дек 16 2015, 15:30
Сообщения: 33
Chaser009 писал(а):
После мэппинга сообщение в мониторе можно? Вы исходное выложили, которое от сервиса прилетело


Насколько понял, исходное сообщение вот:
Код:
<?xml version="1.0"?>

-<ns1:cidiuser_GetInfoResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://metos.at" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://schemas.xmlsoap.org/wsdl/">
-<return xsi:type="tns:struct_cidiuser_GetInfoData">
  -<DataSetMain xsi:type="tns:DataSetStruct">
    -<ReturnDataInfo xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:StructReturnDataInfo[1]">
      -<item xsi:type="tns:StructReturnDataInfo">
        <s_name xsi:type="xsd:string">f_user_last_date</s_name>
        <s_type xsi:type="xsd:string">xsd:string</s_type>
        <s_flags xsi:type="xsd:int">0</s_flags>
        <s_value xsi:type="xsd:string">4</s_value>
      </item>
    </ReturnDataInfo>
  -<ReturnRecordSetInfo xsi:type="tns:StructRecordSetInfo">
    <s_field_count xsi:type="xsd:int">1</s_field_count>
    <s_row_count xsi:type="xsd:int">1</s_row_count>
  </ReturnRecordSetInfo>

  -<ReturnDataSet xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[1]">
    <item xsi:type="xsd:string">2015-11-20 09:30:45.259777</item>
  </ReturnDataSet>
</DataSetMain>
</return>
</ns1:cidiuser_GetInfoResponse>


А привел я именно конечное сообщение, после мапинга и проверок:
Изображение

В полезной нагрузке блока "Мэппинг сообщения-ответа" та же самая XML-ка


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 38 ]  На страницу Пред.  1, 2, 3  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB