Текущее время: Ср, ноя 21 2018, 15:56

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




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

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

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


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

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

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

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

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


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


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

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

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


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

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


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

Ответное сообщение сервиса:
Code:
<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>
<!---->


Оно же после мэпинга:
Code:
<?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
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
Хотелось бы увидеть не тест, а то, что в PI в рантайме приходит назад.

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


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

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

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


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

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

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


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

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

7.40


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

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

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


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

Зарегистрирован:
Ср, дек 16 2015, 15:30
Сообщения: 38
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
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
В абап-части, в sap gui, транзакция sxi_monitor
Естественно, в pi-системе.

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


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

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


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

Ответное сообщение из этой транзакции:
Code:
<?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>


Структура этого сообщения:
Code:
<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
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
После мэппинга сообщение в мониторе можно? Вы исходное выложили, которое от сервиса прилетело

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


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

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


Насколько понял, исходное сообщение вот:
Code:
<?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 часа


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

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


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

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