SAPфорум.RU https://sapboard.ru/forum/ |
|
SOAP-2-RFC https://sapboard.ru/forum/viewtopic.php?f=70&t=85618 |
Страница 3 из 4 |
Автор: | doleynikov [ Чт, фев 06 2014, 14:07 ] |
Заголовок сообщения: | Re: SOAP-2-RFC |
в Receiver Agreement нет такого поля, я все скопировал. |
Автор: | pitroff [ Чт, фев 06 2014, 17:06 ] |
Заголовок сообщения: | Re: SOAP-2-RFC |
Тогда будем думать, как Шерлок Холмс : AXIS модули HandlerBean и AFAdapterBean отработали - от них ошибок нет. RequestResponseBean - тоже отработал: его задача - перевести async вызов в sync, и передать дальше (это устанавливается параметром passThrough = true) А вот следующий модуль (SOAP адаптер) уже не отработал - иначе в мониторе канала связи появилось бы сообщение. Модуль этот - стандартный (не AXIS), значит дело в каких-то стандартных настройках; а поскольку объектов настроек там до Integration Engine - всего один (Sender Agreement) - значит дело в нем. doleynikov написал(а): в Receiver Agreement нет такого поля, я все скопировал. Sender или Receiver agreement? Если sender - это интересно. У меня вот такой вариант работает, по крайней мере SOAP сообщение доходит до вызова RFC. В кэш заглянул - там Sender Service есть. Можно проверить sender agreement, и, если там Comm.Component пустой - создать новый agreement с заполненным компонентом. |
Автор: | doleynikov [ Пт, фев 07 2014, 08:16 ] |
Заголовок сообщения: | Re: SOAP-2-RFC |
Вот, что значит общаться с умными людьми! Столько нового узнаешь, например про обработку модулей. Я, действительно, писал про sender agreement. Не знаю, как получилось, что написал Receiver. Действительно, в описании SA нет звездочек в Communication Component для ресивера. Я никогда ранее не ставил галочку Sender Uses Virtual Receiver, которая дает возможность выставить Communication Component. Я пересоздал SA с конкретным значением принимающего компонента (не звездочка). Вот что в кеше: Code: To-Service UEPCLNT300 Interface Namespace http://www.xxxSORRYxxx.ru/interfaces/istore/sap Interface Name ASYNC_SOAP_REQUEST_MI_OUT Software Component ID BC410C008A9311E0C40FFD07C0A80083 Validation 0 Communication Channel ISTORE_SOAP_SENDER Code: HTTP/1.1 500 Internal Server Error server: SAP NetWeaver Application Server 7.20 / AS Java 7.10 content-type: text/xml; charset=utf-8 content-encoding: gzip date: Fri, 07 Feb 2014 05:32:33 GMT transfer-encoding: chunked <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <soapenv:Fault> <faultcode>soapenv:Server.generalException</faultcode> <faultstring>failed to invoke the module proessor; nested exception is: com.sap.aii.af.service.cpa.CPAException: com.sap.aii.af.service.cpa.impl.exception.CPALookupException: Couldn't retrieve inbound binding for the given P/S/A values: FP=;TP=;FS=ISTORE;TS=null;AN=ASYNC_SOAP_REQUEST_MI_OUT;ANS=http://www.xxxSORRYxxx.ru/interfaces/istore/sap;</faultstring> <detail> <ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">sap-pi-00-d.xxxSORRYxxx.ru</ns1:hostname> </detail> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope> я посмотрел в кеше, у нас почти все рабочие Sender Agreement созданы без указания чего либо в поле Communication Component для ресивера. Когда я создал два SA, один со звездочкой в receiver communication component, другой - без, в логе канала появилось вот что: Code: 2/7/14 9:45:40 AM 1387a59f-8fbb-11e3-c03e-00000041484e message not processed: while trying to invoke the method com.sap.aii.adapter.axis.ra.Adapter.getService() of a null object returned from com.sap.aii.adapter.axis.ra.AdapterManager.getAdapter(java.lang.String) 2/7/14 9:43:03 AM b677ae0f-8fba-11e3-8fd5-00000041484e message not processed: while trying to invoke the method com.sap.aii.adapter.axis.ra.Adapter.getService() of a null object returned from com.sap.aii.adapter.axis.ra.AdapterManager.getAdapter(java.lang.String) Вот такие пироги. странно как-то. PS: Если разница ощущается при переключении канала, значит надо проверить настройки каналов или адаптеров. Я попробовал экспортировать каналы в файл , как для переноса. Потом выкусил из них XML часть и попытался сравнить. ВСе равно не помогло. |
Автор: | doleynikov [ Пт, фев 07 2014, 10:58 ] |
Заголовок сообщения: | Re: SOAP-2-RFC |
Вот какой xml получается для SOAP канала Code: <p1:xiObj xmlns:p1="urn:sap-com:xi">
<p1:idInfo VID="7d9963748f1411e39e5e00000041484e"> <p1:vc vcType="D"> <p1:clCxt consider="A" /> </p1:vc> <p1:key typeID="Channel" oid="f67dbd2ed7ac370a88689aac8d5528b4"> <p1:elem /> <p1:elem>ISTORE</p1:elem> <p1:elem>ISTORE_SOAP_SENDER</p1:elem> </p1:key> </p1:idInfo> <p1:generic> <p1:admInf> <p1:modifBy>USER</p1:modifBy> <p1:modifAt>2014-02-06 13:43:11.237</p1:modifAt> <modifAtLong>1391679791237</modifAtLong> <p1:owner>USER</p1:owner> </p1:admInf> <p1:lnks> <p1:lnkRole role="ADAPTER" kpos="0"> <p1:lnk rMode="A"> <p1:vc vcType="S" swcGuid="1879eed07b4e11d987c6c81c0a114c15" sp="-1" caption="SAP BASIS 7.10"> <p1:clCxt consider="A" /> </p1:vc> <p1:key typeID="AdapterMetaData" oid="3025930377ab37a9978a279039f80b9e"> <p1:elem>SOAP</p1:elem> <p1:elem>http://sap.com/xi/XI/System</p1:elem> </p1:key> </p1:lnk> </p1:lnkRole> </p1:lnks> <p1:textInfo> <p1:textObj id="7d9963748f1411e39e5e00000041484e" type="0" masterL="EN" /> </p1:textInfo> </p1:generic> <p1:content> <cp:Channel xmlns:cp="urn:sap-com:xi:xiChannel"> <cp:EngineType>CA</cp:EngineType> <cp:EngineName /> <cp:ChannelDirection>I</cp:ChannelDirection> <cp:MessageProtocol>AxGeneric</cp:MessageProtocol> <cp:MessageProtocolVersion /> <cp:TransportProtocol>AxServlet</cp:TransportProtocol> <cp:TransportProtocolVersion /> <cp:FromPartyAgency /> <cp:FromPartySchema /> <cp:ToPartyAgency /> <cp:ToPartySchema /> <cp:ChannelAttributes> <AdapterTypeData> <Attribute xmlns=""> <Name>keepAttachments</Name> <Namespace /> <Value>1</Value> </Attribute> <Attribute xmlns=""> <Name>timeout</Name> <Namespace /> <Value>300000</Value> </Attribute> <Attribute xmlns=""> <Name>qualityOfService</Name> <Namespace /> <Value>ExactlyOnce</Value> </Attribute> <Attribute xmlns=""> <Name>payload</Name> <Namespace /> <Value>bodyChild</Value> </Attribute> <Attribute xmlns=""> <Name>keepHeaders</Name> <Namespace /> <Value>0</Value> </Attribute> </AdapterTypeData> </cp:ChannelAttributes> <cp:PipelineAttributes> <cp:PipelineData> <cp:PipelineConfig> <cp:Position>0</cp:Position> <cp:ModuleName>AF_Adapters/axis/HandlerBean</cp:ModuleName> <cp:ModuleType>L</cp:ModuleType> <cp:ModuleNs>xireq</cp:ModuleNs> </cp:PipelineConfig> <cp:PipelineConfig> <cp:Position>1</cp:Position> <cp:ModuleName>AF_Adapters/axis/AFAdapterBean</cp:ModuleName> <cp:ModuleType>L</cp:ModuleType> <cp:ModuleNs>afreq</cp:ModuleNs> </cp:PipelineConfig> <cp:PipelineConfig> <cp:Position>2</cp:Position> <cp:ModuleName>AF_Modules/RequestResponseBean</cp:ModuleName> <cp:ModuleType>L</cp:ModuleType> <cp:ModuleNs>1</cp:ModuleNs> </cp:PipelineConfig> <cp:PipelineConfig> <cp:Position>3</cp:Position> <cp:ModuleName>CallSapAdapter</cp:ModuleName> <cp:ModuleType>L</cp:ModuleType> <cp:ModuleNs>sap</cp:ModuleNs> </cp:PipelineConfig> <cp:PipelineConfig> <cp:Position>4</cp:Position> <cp:ModuleName>AF_Modules/ResponseOnewayBean</cp:ModuleName> <cp:ModuleType>L</cp:ModuleType> <cp:ModuleNs>3</cp:ModuleNs> </cp:PipelineConfig> <cp:PipelineConfig> <cp:Position>5</cp:Position> <cp:ModuleName>AF_Adapters/axis/AFAdapterBean</cp:ModuleName> <cp:ModuleType>L</cp:ModuleType> <cp:ModuleNs>afresp</cp:ModuleNs> </cp:PipelineConfig> <cp:PipelineConfig> <cp:Position>6</cp:Position> <cp:ModuleName>AF_Adapters/axis/HandlerBean</cp:ModuleName> <cp:ModuleType>L</cp:ModuleType> <cp:ModuleNs>xires</cp:ModuleNs> </cp:PipelineConfig> </cp:PipelineData> <cp:ModuleData> <cp:ModuleConfig> <cp:ModuleNs>xires</cp:ModuleNs> <cp:ParamName>handler.type</cp:ParamName> <cp:ParamValue>java:com.sap.aii.axis.xi.XI30InboundHandler</cp:ParamValue> </cp:ModuleConfig> <cp:ModuleConfig> <cp:ModuleNs>xireq</cp:ModuleNs> <cp:ParamName>handler.type</cp:ParamName> <cp:ParamValue>java:com.sap.aii.axis.xi.XI30InboundHandler</cp:ParamValue> </cp:ModuleConfig> <cp:ModuleConfig> <cp:ModuleNs>1</cp:ModuleNs> <cp:ParamName>passThrough</cp:ParamName> <cp:ParamValue>true</cp:ParamValue> </cp:ModuleConfig> <cp:ModuleConfig> <cp:ModuleNs>3</cp:ModuleNs> <cp:ParamName>receiverService</cp:ParamName> <cp:ParamValue>ISTORE</cp:ParamValue> </cp:ModuleConfig> <cp:ModuleConfig> <cp:ModuleNs>sap</cp:ModuleNs> <cp:ParamName>module.pivot</cp:ParamName> <cp:ParamValue>true</cp:ParamValue> </cp:ModuleConfig> <cp:ModuleConfig> <cp:ModuleNs>3</cp:ModuleNs> <cp:ParamName>receiverChannel</cp:ParamName> <cp:ParamValue>ISTORE_SYNC_SOAP_Receiver</cp:ParamValue> </cp:ModuleConfig> </cp:ModuleData> </cp:PipelineAttributes> </cp:Channel> </p1:content> </p1:xiObj> |
Автор: | pitroff [ Пт, фев 07 2014, 15:28 ] |
Заголовок сообщения: | Re: SOAP-2-RFC |
doleynikov написал(а): Действительно, в описании SA нет звездочек в Communication Component для ресивера. Я никогда ранее не ставил галочку Sender Uses Virtual Receiver, которая дает возможность выставить Communication Component. Не-не-не, я не про это, звездочки или пусто - это не так важно, имхо. Меня смутило отсутствие поля FROM Service. То есть, смотрите: в сообщении об ошибке есть указание на ...;FS=ISTORE;T..., а в sender agreement, который в кэше, поле From-Service у Вас отсутствует. Это может быть причиной, почему PI не находит нужного объекта в кэш. У меня объект выглядит так: Code: From-Service BS_External_System Interface Namespace http://sap.pitroff.ru/sappi74/AsyncSyncBridge Interface Name SI_ExtSystem_Request_Async .... Communication Channel CC_ExtSystem_SOAP_Sender то есть у объекта в кэш ключ (From-Service,Interface Name,Interface Namespace) должен быть заполнен полностью. Что касается звездочек в полях receiver - работает и с пустыми полями, и со звездами. Кстати, как уточняющий проблему эксперимент - можно попробовать убрать модули bridge из канала связи и посмотреть - примет ли сообщение PI без модулей моста. Мне кажется, что нет - все-таки дело в настройках SOAP. |
Автор: | doleynikov [ Пт, фев 07 2014, 16:36 ] |
Заголовок сообщения: | Re: SOAP-2-RFC |
Канал не принимает вызовы даже без модулей (то есть только в стандартной конфигурации). |
Автор: | pitroff [ Сб, фев 08 2014, 01:09 ] |
Заголовок сообщения: | Re: SOAP-2-RFC |
doleynikov написал(а): Канал не принимает вызовы даже без модулей (то есть только в стандартной конфигурации). Ок, тогда мост тут точно не при чем. Пока. ) Попробуйте удалить и создать заново sender agreement - все-таки отсутствие поля From-System в кэше меня беспокоит. Еще можно проверить другой url вызова - я тут еще раз "покурил" документацию: http://help.sap.com/saphelp_nwpi71/help ... ameset.htm По хелпу на PI 7.1 SOAP и AXIS-SOAP, оказывается, имеют разный URL вызова. в AXIS SOAP параметра channel нет, есть только senderService, interface, interfaceNamespace значения параметров должны быть url encoded. То есть Ваш URL по документации должен выглядеть как host:port/XIAxisAdapter/MessageServlet?senderService=ISTORE&interface=ASYNC_SOAP_REQUEST_MI_OUT&interfaceNamespace=http%3A%2F%2Fwww.xxxxx.ru%2Finterfaces%2Fistore%2Fsap P.S.: иногда хочется некоторых "писателей" документации удавить собственноручно. |
Автор: | doleynikov [ Пн, фев 10 2014, 08:53 ] |
Заголовок сообщения: | Re: SOAP-2-RFC |
Я попробовал еще раз пересоздать WSDL на Sender Agreement. Там получается URL похожий на тот, что указали Вы. http://sap-pi-00-d:50000/XIAxisAdapter/ ... istore/sap C ним возвращается такая ошибка: Code: HTTP/1.1 500 Internal Server Error server: SAP NetWeaver Application Server 7.20 / AS Java 7.10 content-type: text/xml; charset=utf-8 content-encoding: gzip date: Mon, 10 Feb 2014 05:48:40 GMT transfer-encoding: chunked <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <soapenv:Fault> <faultcode>soapenv:Server.generalException</faultcode> <faultstring>failed to invoke the module proessor; nested exception is: java.lang.NullPointerException: while trying to invoke the method com.sap.aii.adapter.axis.ra.Adapter.getService() of a null object returned from com.sap.aii.adapter.axis.ra.AdapterManager.getAdapter(java.lang.String)</faultstring> <detail> <ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">sap-pi-00-d.xxxxxxx.ru</ns1:hostname> </detail> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope> Если вырезать пустые значения senderParty=,receiverParty=,receiverService= и вызвать полученный URL - сообщение меняется: Code: HTTP/1.1 500 Internal Server Error server: SAP NetWeaver Application Server 7.20 / AS Java 7.10 content-type: text/xml; charset=utf-8 content-encoding: gzip date: Mon, 10 Feb 2014 05:47:44 GMT transfer-encoding: chunked <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <soapenv:Fault> <faultcode>soapenv:Server.generalException</faultcode> <faultstring>failed to invoke the module proessor; nested exception is: com.sap.aii.af.service.cpa.CPAException: com.sap.aii.af.service.cpa.impl.exception.CPALookupException: Couldn't retrieve inbound binding for the given P/S/A values: FP=;TP=;FS=ISTORE;TS=null;AN=ASYNC_SOAP_REQUEST_MI_OUT;ANS=http://www.xxxxxx.ru/interfaces/istore/sap;</faultstring> <detail> <ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">sap-pi-00-d.xxxxx.ru</ns1:hostname> </detail> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope> Sender Agreement я удалял и пересоздавал. Может там в кеше нет поля From-System из-за того, что где-то выше по цепочке чего-то не указано? например в описании интерфейса? |
Автор: | pitroff [ Пн, фев 10 2014, 13:31 ] |
Заголовок сообщения: | Re: SOAP-2-RFC |
Цитата: Sender Agreement я удалял и пересоздавал. Может там в кеше нет поля From-System из-за того, что где-то выше по цепочке чего-то не указано? например в описании интерфейса? Не, это вещи в PI почти независимые - в том плане, что прием/передача/маршрутизация сообщения зависит только от настроек в Directory. Мдя. Получается, что все дело в настройках AXIS - больше тут ломаться нечему. К сожалению, именно в AXIS я не гуру - не приходилось много с ним работать, так, пару раз и неглубоко. Но проблему найти попробуем, алгоритм такой: - модули моста пока не включаем, задача - добиться приема сообщения SOAP-AXIS адаптером, чтобы вернулась какая-нибудь ошибка уже из Integration Engine. - проверить еще раз установку AXIS (вызвать http://<host>:<port>/XIAxisAdapter/MessageServlet в браузере, посмотреть, нет ли ошибок или недостающих компонент) У меня AXIS не установлен - PI пишет список всех требуемых компонент, у Вас должно написать, что все ок. - запросить у сервиса WSDL (нашел тут в FAQ: вызвать в браузере URL из сообщения ниже, добавив к нему &wsdl - должен вернуть WSDL сервиса, сгенерированный AXIS-адаптером) Нужно, чтобы понять - ошибка в параметрах URL или в настройках sender adapter? - еще раз проверить канал связи: transport protocol - servlet(AXIS), XI protocol - Exactly Once (можно попробовать вообще создать новый канал связи и sender agreement, и не трогать настройки модулей - для чистоты эксперимента). |
Автор: | doleynikov [ Пн, фев 10 2014, 14:06 ] |
Заголовок сообщения: | Re: SOAP-2-RFC |
Вот что выдает запрос на http://sap-pi-00-d:50000/XIAxisAdapter/MessageServlet Code: Axis Adapter Message Servlet Component Versions Adapter Common Library Version: 1.7.1017.20130812083343.0000, NW07_17_REL (2013-08-12T14:04:59+0000) Adapter Application Version: 1.7.1017.20130812083343.0000, NW07_17_REL (2013-08-12T14:05:12+0000) Axis Version: Apache Axis version: 1.4 Built on Apr 22, 2006 (06:55:48 PDT) Required Components Apache-Axis Found: org.apache.axis.AxisEngine at /storageroot/usr-sap/UPD/DVEBMGS00/j2ee/cluster/bin/ext/com.sap.aii.af.axisproviderlib/lib/axis.jar Jakarta-Commons Discovery Found: org.apache.commons.discovery.Resource at /storageroot/usr-sap/UPD/DVEBMGS00/j2ee/cluster/bin/ext/com.sap.aii.af.axisproviderlib/lib/commons-discovery-0.2.jar Jakarta-Commons Logging Found: org.apache.commons.logging.Log at /storageroot/usr-sap/UPD/DVEBMGS00/j2ee/cluster/bin/ext/com.sap.aii.af.axisproviderlib/lib/commons-logging-1.0.4.jar Number of Missing Components: 0 Status: OK Optional Components XML Security API Warning: optional component missing --- looking for org.apache.xml.security.Init in com.sap.aii.af.axisproviderlib/xmlsec.jar; see http://xml.apache.org/security/ Apache Xalan Warning: optional component missing --- looking for org.apache.xalan.Version in com.sap.aii.af.axisproviderlib/xalan.jar; see http://xml.apache.org/xalan-j/ Jakarta-Commons Codec Found: org.apache.commons.codec.Encoder at /storageroot/usr-sap/UPD/DVEBMGS00/j2ee/cluster/bin/ext/com.sap.aii.af.axisproviderlib/lib/commons-codec-1.2.jar Jakarta-Commons Net Found: org.apache.commons.net.SocketFactory at /storageroot/usr-sap/UPD/DVEBMGS00/j2ee/cluster/bin/ext/com.sap.aii.af.axisproviderlib/lib/commons-net-1.0.0-dev.jar Jakarta-Commons HttpClient Found: org.apache.commons.httpclient.HttpClient at /storageroot/usr-sap/UPD/DVEBMGS00/j2ee/cluster/bin/ext/com.sap.aii.af.axisproviderlib/lib/commons-httpclient-3.0-rc2.jar Apache WSS4J Warning: optional component missing --- looking for org.apache.ws.security.WSSConfig in com.sap.aii.af.axisproviderlib/wss4j.jar; see http://ws.apache.org/wss4j/ Apache Addressing Warning: optional component missing --- looking for org.apache.axis.message.addressing.Constants in com.sap.aii.af.axisproviderlib/addressing.jar; see http://ws.apache.org/addressing/ Apache Sandesha Warning: optional component missing --- looking for org.apache.sandesha.Constants in com.sap.aii.af.axisproviderlib/Sandesha.jar; see http://ws.apache.org/sandesha/ Number of Missing Components: 5 Status: Warning по URL http://sap-pi-00-d:50000/XIAxisAdapter/MessageServlet?senderParty=&senderService=ISTORE&receiverParty=&receiverService=&interface=ASYNC_SOAP_REQUEST_MI_OUT&interfaceNamespace=http://www.xxxxxxxxx.ru/interfaces/istore/sap&wsdl - ошибка Code: Error Exception - java.lang.NullPointerException: while trying to invoke the method com.sap.aii.adapter.axis.ra.Adapter.getService() of a null object loaded from local variable 'adapter' java.lang.NullPointerException: while trying to invoke the method com.sap.aii.adapter.axis.ra.Adapter.getService() of a null object loaded from local variable 'adapter' at com.sap.aii.adapter.axis.web.ServletReceiverCore.doGet(ServletReceiverCore.java:623) at com.sap.aii.adapter.axis.web.MessageServlet.doGet(MessageServlet.java:71) ... Создал новый канал. Эффект тот же. Может все-же в настройках AXIS дело. Что-то, для простоты, в конфигурации "прибили гвоздями". Я написал вопрос человеку, кто устанавливал. Может он подскажет, как нужно сделать. |
Автор: | pitroff [ Пн, фев 10 2014, 17:48 ] |
Заголовок сообщения: | Re: SOAP-2-RFC |
doleynikov написал(а): Создал новый канал. Эффект тот же. Может все-же в настройках AXIS дело. Что-то, для простоты, в конфигурации "прибили гвоздями". Я написал вопрос человеку, кто устанавливал. Может он подскажет, как нужно сделать. Да, похоже что-то с установкой/настройкой AXIS - уж самый простейший канал должен был по умолчанию "съесть" запрос. Есть что-то похожее в FAQ: Code: I am getting org.apache.axis.ConfiguraitonException: adapter is null You may see this exception in the stack trace part of the returned SOAP fault detail or in the channel process status or messaging monitors. This error indicates that the channel has not been initialized correctly. This problem can potentially occur in two situations. 1) the initialization of the Axis channel was invoked but the handler was not instatiated or 2) the initialization of the Axis channel was not triggered by the SOAP adapter. For the first case, you can try to restart the channel manually. This will show some error indicating why the handler could not be instantiated. For the second case, which may only occur when the affected Axis channel is hosted by the SOAP adapter, you can restart the SOAP adapter application. Не уверен, что это наш случай, но может помочь. |
Автор: | doleynikov [ Вт, фев 11 2014, 11:12 ] |
Заголовок сообщения: | Re: SOAP-2-RFC |
это не вопрос,просто, чтобы не забыть: http://scn.sap.com/community/pi-and-soa-middleware/blog/2014/01/28/generic-pi-async-sync-bridge-configuration-for-any-adapters ссылка по теме |
Автор: | doleynikov [ Вт, фев 11 2014, 13:11 ] |
Заголовок сообщения: | Re: SOAP-2-RFC |
Уважаемый pitroff, похоже я Вам голову морочию. Я стал внимательно просматривать интеграцию, с записью в табличку. Вот что получилось: Code: ----------------------------------------------------------------------------------------------------------------------- Service interface — ASYNC_SOAP_REQUEST_MI_OUT (ASYNC, OUTBOUND) — передача запроса от внешней системы Communication Channel — ISTORE_SYNC_SOAP_IN (SENDER) 1 AF_Modules/RequestResponseBean Local Enterprise Bean 1 2 CallSapAdapter Local Enterprise Bean 2 3 AF_Modules/ResponseOnewayBean Local Enterprise Bean 3 1 passThrough true 3 receiverChannel ISTORE_SYNC_SOAP_Receiver 3 receiverService ISTORE Sender Agreement – |ISTORE|ASYNC_SOAP_REQUEST_MI_OUT| | Receiver Determination – |ISTORE|ASYNC_SOAP_REQUEST_MI_OUT Interface Determination – |ISTORE|ASYNC_SOAP_REQUEST_MI_OUT| | ----------------------------------------------------------------------------------------------------------------------- Service interface — SYNC_ISTORE_RFC (SYNC, INBOUND) - прием запроса и передача ответа RFC Receiver Agreement - |ISTORE|UEPCLNT300|ZMM_GETSTOCKS ----------------------------------------------------------------------------------------------------------------------- Service interface — ASYNC_SOAP_RESPONSE_MI_IN (ASYNC, INBOUND) — передача ответа внешней системе Communication Channel – ISTORE_SYNC_SOAP_Receiver (RECEIVER) Потом стал перечитывать ветку. Не знаю с чего я взял, что нужны ТРИ интерфейса, тогда как Вы говорили о двух синхронных. Может в этом все дело? Чуть позже попробую сделать нормальный интерфейс. |
Автор: | doleynikov [ Вт, фев 11 2014, 13:50 ] |
Заголовок сообщения: | Re: SOAP-2-RFC |
Сейчас я попробую создать такое: Imported Objects ZMM_GETSTOCKS = RFC, импортированная в Software Component Version ISTORE. Получается это будет описание принимающего интерфейса и типов сообщений для запроса и ответа Service Interface: StockRequest_Sync_SI=SYNC, OUTBOUND. MESSAGES= сообщения из RFC, импортированного в Software Component Version Communication Channel ISTORE_SOAP_SENDER (SOAP c настройками модулей) |ISTORE|RFC_Transaction - копия штатного канала для вызова SAP RFC Sender Agreement |ISTORE|StockRequest_Sync_SI| | - определение интерфейса-сендера Receiver Determination |ISTORE|StockRequest_Sync_SI Interface Determination |ISTORE|StockRequest_Sync_SI||ISTORE| - прием сообщений с интерфейса StockRequest_Sync_SI самим компонентом ISTORE Receiver Agreement |ISTORE| |ISTORE|ZMM_GETSTOCKS Надеюсь ничего не напутал |
Автор: | pitroff [ Вт, фев 11 2014, 14:11 ] |
Заголовок сообщения: | Re: SOAP-2-RFC |
doleynikov написал(а): Уважаемый pitroff, похоже я Вам голову морочию. Я стал внимательно просматривать интеграцию, с записью в табличку. Вот что получилось: Потом стал перечитывать ветку. Не знаю с чего я взял, что нужны ТРИ интерфейса, тогда как Вы говорили о двух синхронных. Может в этом все дело? Чуть позже попробую сделать нормальный интерфейс. Не-не-не, не морочите. Это, похоже, у меня с головой плохо было. %) Перечитал - был не прав, интерфейса ТРИ: асинхронный SOAP sender, синхронный RFC и асинхронный SOAP receiver. В этом и смысл моста - связать два асинхронных с одним синхронным интерфейсом, при двух синхронных интерфейсах - мост не нужен. С файлами-то у Вас нормально работало. Прошу прощения, сейчас исходный пост исправлю. НО! К ошибке axis это не относится. Если axis работает, то создание простой пары SOAP-AXIS sender comm.channel+Sender Agreement должно при тестировании приводить к ошибке маршрутизации, что-нибудь из разряда receiver determination not found, а в мониторе канала связи должно появляться XML сообщение. |
Страница 3 из 4 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |