Two SOAP Envelope's in OSB Response document
Hi,
I'm getting two SOAP envelope's (with same body in both envelopes) in the Response document while testing in OSB console. Can you pls let me know what could be the reason.
Thanks
Hi Vlad,
Actually I'm getting the response that I need. But I'm getting it two times in Response document tab of OSB test console.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<soapenv:Body>
<result>Success</result>
</soapenv:Body>
</soapenv:Envelope>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<soapenv:Body>
<result>Success</result>
</soapenv:Body>
</soapenv:Envelope>
What I'm expecting is only one SOAP Envelope.
Thanks
Edited by: bpeltechie on Sep 13, 2012 11:28 AM
Similar Messages
-
How to transform OSB response element
Hi
I have an OSB response document as follows
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Header/>
<env:Body>
<uwd:getPersonCourseResponse xmlns:uwd="http://eadf.ites.ayd.edu.au/data">
<uwd:Response>
<uwd:PersonID>2113446</uwd:PersonID>
<uwd:Terms>
<uwd:Term>
<uwd:InstitutionCode>UN</uwd:InstitutionCode>
<uwd:TermCode>5107</uwd:TermCode>
<uwd:AcademicYear>2010</uwd:AcademicYear>
<uwd:TermName>Semester 2 2010</uwd:TermName>
<uwd:CurrentTerm>true</uwd:CurrentTerm>
<uwd:Courses>
<uwd:Course>
<uwd:CourseCode>BIOT3621</uwd:CourseCode>
<uwd:CourseTitle>Biotechnology B (Advanced)</uwd:CourseTitle>
<uwd:RelationshipType>Learning</uwd:RelationshipType>
<uwd:Applications>
<uwd:Application>
<uwd:ApplicationCode>LECTOPIA</uwd:ApplicationCode>
<uwd:ApplicationTitle>Lectopia</uwd:ApplicationTitle>
<uwd:Modules>
<uwd:Module>
<uwd:ModuleCode>13</uwd:ModuleCode>
<uwd:ModuleType>Lectopia</uwd:ModuleType>
<uwd:ModuleTitle>BIOT3021 Biotechnology B</uwd:ModuleTitle>
*<uwd:ModuleURL>https://lectopia.telt.test.ayd.edu.au/lectopia/lectopia.lasso?ut=13& </uwd:ModuleURL>*
<uwd:Contents>
<uwd:Content>
<uwd:ContentCode>86389</uwd:ContentCode>
What I want to do is that I want delete the *&* from *<uwd:ModuleURL>https://lectopia.telt.test.ayd.edu.au/lectopia/lectopia.lasso?ut=13& </uwd:ModuleURL>* and send only *<uwd:ModuleURL>https://lectopia.telt.test.ayd.edu.au/lectopia /lectopia.lasso?ut=13</uwd:ModuleURL>*
as part of the response document. how could I do this in OSB? would I be able to make use of any XQuery functions?
Regards
Vick
Edited by: 807485 on Dec 9, 2010 6:56 PMThe problem is with the test data.. You cant have '&' as a content of xml node , instead you should have &-a-m-p-; ( - is used to display it here , should be removed)
If you want & to be sent as such you need to wrap it in a CDATA as below
<uwd:ModuleURL><![CDATA[https://lectopia.telt.test.ayd.edu.au/lectopia/lectopia.lasso?ut=13&]]></uwd:ModuleURL>
Then you can use replace as
replace(data($body/data:getPersonCourseResponse/data:Response/data:Terms/data:Term/data:Courses/data:Course/data:Applications/data:Application/data:Modules/data:Module/data:ModuleURL),'&-a-m-p;amp','')
&-a-m-p; : remove '-' s -
SOAP scenario "Do not use SOAP Envelope" check problems
Hi Gurus!
I'm again here.
I've an scenario with SOAP Receiver, the WS do I need consume, looks like:
POST /SumTotalws1/services/Authentication.asmx HTTP/1.1
Host: xxx.xxx.xxx.xxx
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://www.sumtotalsystems.com/sumtotal7/sumtotalws/Authentication/Login"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Login xmlns="http://www.sumtotalsystems.com/sumtotal7/sumtotalws/Authentication/">
<credentials>
<Username>string</Username>
<Passcode>string</Passcode>
<AuthenticationType>NotSpecified or Anonymous or NTAuthentication or Passport or LDAP</AuthenticationType>
<AccountType>NotSpecified or WebService or WebUI</AccountType>
</credentials>
</Login>
</soap:Body>
</soap:Envelope>
but the response looks like:
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<UserToken xmlns="http://www.sumtotalsystems.com/sumtotal7/sumtotalws/">
<Value>string</Value>
</UserToken>
</soap:Header>
<soap:Body>
<LoginResponse xmlns="http://www.sumtotalsystems.com/sumtotal7/sumtotalws/Authentication/" />
</soap:Body>
</soap:Envelope>
when I create my communication channel with "Do not Use SOAP Envelope" uncheck it, all run ok, but I only get in response message "<LoginResponse>" and I need <UserToken>
When I check it "Do not use SOAP Envelope" and I use XSLT mapping to add SOAP Env to request message, I get response message empty.
I tried the web Service with the message that I obtained from de XSLT mapping in the program SOAPUI. I get ok response with the <UserToken> value.
some idea to solve this problem??
Thanks in advance.
Edited by: KrlosRios on Sep 30, 2011 8:07 PMHi, thanks for your answer.
Can I use AXIS to execute any WS?
The WS that I tried execute looks like this:
POST /xxxx/services/Authentication.asmx HTTP/1.1
Host: xxx.240.106.39
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://xxx/Authentication/Login"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Login xmlns="http://xxxxAuthentication/">
<credentials>
<Username>string</Username>
<Passcode>string</Passcode>
<AuthenticationType>NotSpecified or Anonymous or NTAuthentication or Passport or LDAP</AuthenticationType>
<AccountType>NotSpecified or WebService or WebUI</AccountType>
</credentials>
</Login>
</soap:Body>
</soap:Envelope>
and for the response:
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<UserToken xmlns="http://www.sumtotalsystems.com/sumtotal7/sumtotalws/">
<Value>string</Value>
</UserToken>
</soap:Header>
<soap:Body>
<LoginResponse xmlns="http://www.sumtotalsystems.com/sumtotal7/sumtotalws/Authentication/"></LoginResponse>
</soap:Body>
</soap:Envelope>
also I found in Trace node in SXI_MONITOR, jus before execute response mapping :
<Trace level="1" type="B" name="PLSRV_MAPPING_RESPONSE"></Trace><!-- ************************************ -->
<Trace level="1" type="Timestamp">2011-11-01T19:33:34Z UTC-6 Start of pipeline service processing PLSRVID= PLSRV_MAPPING_RESPONSE</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
<Trace level="3" type="T">Calling pipeline service: PLSRV_MAPPING_RESPONSE</Trace>
<Trace level="3" type="T">Reading Pipeline-Service specification... </Trace>
<Trace level="3" type="T">PLSRVTYPE = </Trace>
<Trace level="3" type="T">ADRESSMOD = LOCAL</Trace>
<Trace level="3" type="T">P_CLASS = CL_MAPPING_XMS_PLSRV3</Trace>
<Trace level="3" type="T">P_IFNAME = IF_XMS_PLSRV</Trace>
<Trace level="3" type="T">P_METHOD = ENTER_PLSRV</Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL"></Trace><!-- ************************************ -->
<Trace level="1" type="B" name="CL_MAPPING_XMS_PLSRV3-ENTER_PLSRV"></Trace><!-- ************************************ -->
<Trace level="2" type="T">......attachment XI_Context not found </Trace>
<Trace level="3" type="T">Das Mapping wurde bereits in der Interface-Ermittlung bestimmt. </Trace>
<Trace level="3" type="T">Objekt-Id des Interface-Mappings 8594D8C2E6DA3C008F45B112FFCC86B8 </Trace>
<Trace level="3" type="T">Versions-Id des Interface-Mappings C3BB8FB0A1D511E0A688E9FCB9F06E16 </Trace>
<Trace level="1" type="T">Interface-Mapping http://xxxxx.net/pi/lms/Authentication OM_LMS_Authentication </Trace>
<Trace level="3" type="T">Mapping-Schritte 1 XSLT Response_LMS_Auth5 </Trace>
<Trace level="3" type="T">MTOM-Attachments werden nicht in die Payload überführt. </Trace>
<Trace level="1" type="T">Payload is empty. </Trace>
<Trace level="3" type="T">Dynamische Konfiguration ist leer. </Trace>
<Trace level="2" type="T">Modus 0 </Trace>
<Trace level="2" type="T">Call XSLT processor with stylsheet Response_LMS_Auth5.xsl. </Trace>
<Trace level="3" type="T">Method fatalError called, terminate transformation, because of
Thrown:
javax.xml.transform.TransformerException: java.io.IOException: Parsing an empty source. Root element expected!
at com.sap.engine.lib.jaxp.TransformerImpl.transform(TransformerImpl.java:250)
Say Payload is empty.
and in left directory tree, not exist "payload" node, only existe SOAP Body and in "Manifest" node looks like this:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!-- XML Validation Outbound Channel Response -->
<SAP:Manifest wsu:Id="wsuid-manifest-5CABE13F5C59AB7FE10000000A1551F7" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<SAP:Payload xlink:href="cid:att-60c3078b066911e1bc1500000093b25a @sap.com">
<SAP:Name>MainAttachment</SAP:Name><
SAP:Description>Main document</SAP:Description>
<SAP:Type>Application</SAP:Type></SAP:Payload>
</SAP:Manifest>
Thanks for your help. -
Access to XI SOAP envelope - How to?
Hello there,
Is it possible to get access and manipulate the Standard SOAP envelope headers internally used by XI? Does XI supports this functionality/customization?
I would like to enrich/enhance the XI SOAP headers with some own context data to be used later for end-to-end monitoring outside XI.
Thanks for your feedback.
Cheers,
R.Thanks Anupam and Jenny for your kind response.
I am wrking on PI 7.0. I dnt want soap envelope in payload so I have already checked the 'Do not create response' button still in response message I am getting the soap envelope.
I can use java or xslt but the the structure is not able to read the soap envelope. To read it I need to create same data structure which matches with the soap envelope.
this is the response I am getting through webservice.
<?xml version="1.0" encoding="UTF-8" ?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="urn:enterprise.soap.sforce.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<createResponse>
<result>
<errors>
<message>Config Master Record Type Name value is missing</message>
<statusCode>FIELD_CUSTOM_VALIDATION_EXCEPTION</statusCode>
</errors>
<id xsi:nil="true" />
<success>false</success>
</result>
</createResponse>
</soapenv:Body>
</soapenv:Envelope>
And this is the wsdl structure
<?xml version="1.0" encoding="UTF-8"?>
<ns0:createResponse xmlns:ns0="urn:enterprise.soap.sforce.com">
<ns0:result>
<ns0:errors>
<ns0:fields/>
<ns0:message/>
<ns0:statusCode/>
</ns0:errors>
<ns0:id/>
<ns0:success/>
</ns0:result>
</ns0:createResponse>
Because of the soap envelope it is not able to read it. I have to create new structure.
Experts please help me to solve this problem.
Regards,
Jayesh. -
How to create soap envelope structure
Hello Friends,
I am working on a RFC to webservice sync scenario.Here I am getting response from webservice in soap envelope form which is not matching with my wsdl response structure. I have tried to create the envelope structure manually but i dint get success. Can any body guide me how to over come with it.
(I have already checked 'Do not create soap envelop' in receiver soap addapter).
Regards,
jayesh.Thanks Anupam and Jenny for your kind response.
I am wrking on PI 7.0. I dnt want soap envelope in payload so I have already checked the 'Do not create response' button still in response message I am getting the soap envelope.
I can use java or xslt but the the structure is not able to read the soap envelope. To read it I need to create same data structure which matches with the soap envelope.
this is the response I am getting through webservice.
<?xml version="1.0" encoding="UTF-8" ?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="urn:enterprise.soap.sforce.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<createResponse>
<result>
<errors>
<message>Config Master Record Type Name value is missing</message>
<statusCode>FIELD_CUSTOM_VALIDATION_EXCEPTION</statusCode>
</errors>
<id xsi:nil="true" />
<success>false</success>
</result>
</createResponse>
</soapenv:Body>
</soapenv:Envelope>
And this is the wsdl structure
<?xml version="1.0" encoding="UTF-8"?>
<ns0:createResponse xmlns:ns0="urn:enterprise.soap.sforce.com">
<ns0:result>
<ns0:errors>
<ns0:fields/>
<ns0:message/>
<ns0:statusCode/>
</ns0:errors>
<ns0:id/>
<ns0:success/>
</ns0:result>
</ns0:createResponse>
Because of the soap envelope it is not able to read it. I have to create new structure.
Experts please help me to solve this problem.
Regards,
Jayesh. -
OSB Service Call Out without soap envelope
Can we do a service call out without any soap envelope wrapped.
Example if my message is <Test>test</Test>
it should not wrap it like
<soapEnv:Body xmlns:soapEnv="http://schemas.xmlsoap.org/soap/envelope/"><Test>test</Test></soapEnv:Body>in request part of service call out.
My calling service is WSDL based proxy and called service is ANY XML Proxy Serviceindeed, I have done my tests and it proved the same: whatever you post to a AnyXML service, OSB will first wrap it into a SOAP Envelope / Body and then pass it to the Message Flow.
After all it makes sense, the Interface of a Proxy Service has nothing to do with its Implementation....
a SOAP proxy service is implemented exactly like a AnyXML proxy service as far as the $body is concerned (maybe I have said an enormous BS!)
Only $operation would not be populated - I would expect. Correct me if I am wrong. -
OSB: how to remove soap envelope from the $body
Hi,
In Assign activity when i assign: xquF1:url-decode(fn-bea:serialize($body),"UTF-8") = variable1,i am getting:
$variable1 =
<soap-env:Body xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<MESSAGE>
<aa>12</aa>
<bb>34</bb>
</MESSAGE>
</soap-env:Body>
How should i remove 'soap-env:Body' from the above xml. I need only:
$variable1 =
<MESSAGE>
<aa>12</aa>
<bb>34</bb>
</MESSAGE>
Kindly advise how to acheive the same.
Thanks in advance.
Edited by: user9223904 on Apr 17, 2013 2:25 AM
Edited by: user9223904 on Apr 17, 2013 2:26 AMjust use $body/* and you will have what u wanted.
-
SOAP Request Error in OSB Console
Hi,
I'm just learning OSB, and I tried to test out a web service project that I'd built. I deployed the project onto Weblogic, created the WSDL file for the business service in OSB and mounted that as well, but when I try to test it, the SOAP response gives the following error: Cannot find dispatch method for {http://calculatorservice}doAdd
I'm using JDeveloper 11.1.1.4, WebLogic 10.3.4 and OSB 11gR1.
The complete source code is as follows:
Calculator.java
package calculatorservice;
import javax.jws.WebService;
@WebService(targetNamespace="http://calculatorservice")
public class Calculator implements CalculatorIF{
@Override
public int doAdd(int a, int b){
return a + b;
@Override
public int doSub(int a, int b){
return a - b;
CalculatorBusinessService.wsdl
<?xml version="1.0" encoding="UTF-8" ?>
<definitions name="CalculatorBusinessService"
targetNamespace="http://calculatorservice"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://calculatorservice"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:types="http://calculatorservice">
<types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://calculatorservice"
targetNamespace="http://calculatorservice"
elementFormDefault="qualified">
<xsd:complexType name="AddInput">
<xsd:sequence>
<xsd:element name="arg0" type="xsd:int"/>
<xsd:element name="arg1" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="AddOutput">
<xsd:sequence>
<xsd:element name="result" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="SubInput">
<xsd:sequence>
<xsd:element name="arg0" type="xsd:int"/>
<xsd:element name="arg1" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="SubOutput">
<xsd:sequence>
<xsd:element name="result" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="doAddRequest" type="tns:AddInput"/>
<xsd:element name="doAddResponse" type="tns:AddOutput"/>
<xsd:element name="doSubRequest" type="tns:SubInput"/>
<xsd:element name="doSubResponse" type="tns:SubOutput"/>
</xsd:schema>
</types>
<message name="doAddInput">
<part name="parameters" element="tns:doAddRequest"/>
</message>
<message name="doAddOutput">
<part name="parameters" element="tns:doAddResponse"/>
</message>
<message name="doSubInput">
<part name="parameters" element="tns:doSubRequest"/>
</message>
<message name="doSubOutput">
<part name="parameters" element="tns:doSubResponse"/>
</message>
<portType name="Calculator">
<operation name="doAdd">
<input message="tns:doAddInput"/>
<output message="tns:doAddOutput"/>
</operation>
<operation name="doSub">
<input message="tns:doSubInput"/>
<output message="tns:doSubOutput"/>
</operation>
</portType>
<binding name="CalculatorBinding" type="tns:Calculator">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/http"/>
<operation name="doAdd">
<soap:operation style="document"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="doSub">
<soap:operation style="document"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="CalculatorSerivce">
<port name="CalculatorPort" binding="tns:CalculatorBinding">
<soap:address location="http://localhost:7001/Calculator-CalculatorService-context-root/CalculatorPort" />
</port>
</service>
</definitions>
Now, here are the SOAP messages auto-generated by OSB console:
SOAP Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
</soap:Header>
<soapenv:Body>
<cal:doAdd xmlns:cal="http://calculatorservice">
<cal:arg0>3</cal:arg0>
<cal:arg1>3</cal:arg1>
</cal:doAdd>
</soapenv:Body>
</soapenv:Envelope>
SOAP Response:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
<faultcode>S:Client</faultcode>
<faultstring>
Cannot find dispatch method for {http://calculatorservice}doAdd
</faultstring>
</S:Fault>
</S:Body>
</S:Envelope>
I'd be really grateful if anyone could point out my mistakes.
Thank You
Edited by: Debojit Sinha on Feb 4, 2011 7:35 PMHi Palak,
If you are talking about the weblogic test client for the web service, then yes I was. Also, since my last post, I tried to run the business service by copy-pasting the WSDL generated by the server and using it to create the Business service, and it works fine. The results are wrong, but the error is gone. So, I think that I can safely conclude that the problems lies i the WSDL. I haven't been able to pinpoint the source, unfortunately. Comparing the two also turned up nothing. As far as I can tell, they are both semantically identical. But to let you judge for yourself, here's the server-generate WSDL:
<?xml version='1.0' encoding='UTF-8'?><!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Oracle JAX-WS 2.1.5. --><!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Oracle JAX-WS 2.1.5. --><definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://calculatorservice" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://calculatorservice" name="CalculatorService">
<types>
<xsd:schema>
<xsd:import namespace="http://calculatorservice" schemaLocation="http://localhost:7001/Calculator-CalculatorService-context-root/CalculatorPort?xsd=1"/>
</xsd:schema>
</types>
<message name="doAdd">
<part name="parameters" element="tns:doAdd"/>
</message>
<message name="doAddResponse">
<part name="parameters" element="tns:doAddResponse"/>
</message>
<message name="doSub">
<part name="parameters" element="tns:doSub"/>
</message>
<message name="doSubResponse">
<part name="parameters" element="tns:doSubResponse"/>
</message>
<portType name="Calculator">
<operation name="doAdd">
<input message="tns:doAdd"/>
<output message="tns:doAddResponse"/>
</operation>
<operation name="doSub">
<input message="tns:doSub"/>
<output message="tns:doSubResponse"/>
</operation>
</portType>
<binding name="CalculatorPortBinding" type="tns:Calculator">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="doAdd">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="doSub">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="CalculatorService">
<port name="CalculatorPort" binding="tns:CalculatorPortBinding">
<soap:address location="http://localhost:7001/Calculator-CalculatorService-context-root/CalculatorPort"/>
</port>
</service>
</definitions> -
Response Document:"The invocation resulted in an error: Length Required"
Hi sirs,
I'm new to OSB. After try some lab test, i try to import a real web service.
Web service is http://www.webservicex.net/globalweather.asmx?WSDL
I copy whole XML file and create a WSDL file. Then import to OSB and then create a Business service using this WSDL resource.
Then i test the Business Service. The test show:
==============================================================
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Header>
</soap:Header>
<soap:Body>
<web:GetCitiesByCountry xmlns:web="http://www.webserviceX.NET">
<!--Optional:-->
<web:CountryName>spain</web:CountryName>
</web:GetCitiesByCountry>
</soap:Body>
</soap:Envelope>
====================================================================
Response Document
The invocation resulted in an error: Length Required.
=========================================================================
Response Metadata
<con:metadata xmlns:con="http://www.bea.com/wli/sb/test/config">
<tran:headers xsi:type="http:HttpResponseHeaders" xmlns:http="http://www.bea.com/wli/sb/transports/http" xmlns:tran="http://www.bea.com/wli/sb/transports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<http:Connection>close</http:Connection>
<http:Content-Length>344</http:Content-Length>
<http:Content-Type>text/html; charset=us-ascii</http:Content-Type>
<http:Date>Sat, 05 Nov 2011 04:20:50 GMT</http:Date>
<http:Server>Microsoft-HTTPAPI/2.0</http:Server>
</tran:headers>
<tran:response-code xmlns:tran="http://www.bea.com/wli/sb/transports">1</tran:response-code>
<tran:response-message xmlns:tran="http://www.bea.com/wli/sb/transports">Length Required</tran:response-message>
<tran:encoding xmlns:tran="http://www.bea.com/wli/sb/transports">us-ascii</tran:encoding>
<http:http-response-code xmlns:http="http://www.bea.com/wli/sb/transports/http">411</http:http-response-code>
</con:metadata>
============
I try with a SOAPUI with a same request XML and it works. I stuck with this 2 weeks. Please help me.
Thank for watching.Disable the "Use Chunked Streaming Mode" property in HTTP Transport Configuration of your business service. By default it remains enabled.
Regards,
Anuj -
XSLT mapping with SOAP Envelope
Hi
I'm trying map SOAP response (with Envelope) to pick two values into the target. Here's the data:
Source (with data):
<?xml version="1.0"?>
<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>
<EnumerateResponse xmlns="http://www.approva.net/BizRights/Services">
<EnumerateResult>
<TaskID>-1</TaskID>
<Result>FinishedSuccessfully</Result>
<StatusInfo/>
</EnumerateResult>
<pageObject>
<startIndex>0</startIndex>
<pageSize>10</pageSize>
<totalRows>1</totalRows>
<moreRecords>false</moreRecords>
<rowsReturned>1</rowsReturned>
</pageObject>
<xmlObjects>(large string of valid data in here)</xmlObjects>
</EnumerateResponse>
</soap:Body>
</soap:Envelope>
Target:
Only need Result and xmlObjects into target.
Mapping:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<poll_status_resp_r3>
<Result>
<xsl:value-of select="EnumerateResponse/Result"/>
</Result>
<xmlObjects>
<xsl:value-of select="EnumerateResponse/xmlObjects"/>
</xmlObjects>
</poll_status_resp_r3>
</xsl:template>
</xsl:stylesheet>
The values are not getting picked-up into the target.
What am I missing here?
Any help is appreciated.Hi,
Save the following XSL file as RSpace.xsl
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="no"/>
<xsl:template match="/|comment()|processing-instruction()">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match="*">
<xsl:element name="{local-name()}">
<xsl:apply-templates select="@*|node()"/>
</xsl:element>
</xsl:template>
<xsl:template match="@*">
<xsl:attribute name="{local-name()}">
<xsl:value-of select="."/>
</xsl:attribute>
</xsl:template>
</xsl:stylesheet>
Zip it and import it under Imported Archive.
In the interface mapping click "+" to add one more mapping.
Use this XSL as first mapping and your XSL mapping as the second mapping.
In your XSLT mapping you can use the XPath as
"Envelope/Body/EnumerateResponse/Result".
I mean remove the namespace and use the XPATH.
Thanks,
Prakash -
SOAP Envelope - HTTP_EXCEPTION - HTTP 500 Internal Server Error
Pessoal, o cliente em que estou utiliza uma solução para NFe que não é o GRC.
Para tentar solucionar o problema do SOAP 1.2 e do message header, estou tentando criar o SOAP Envelope utilizando um XSLT, e no Communication Channel eu estou flegando Do not use soap envelope e colocando os modules para os charset, assim como na nota da SAP.
O que está ocorrendo é que estou tendo o seguinte erro:
com.sap.aii.af.ra.ms.api.DeliveryException: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Internal Server Error
Conversei com um rapaz na SEFAZ e ele diz que não está chegando nada pra ele.
O SOAP Envelope que estou mandando é:
está dentro de tags CDATA.
Alguém saberia o que está ocorrendo?
Muito obrigao,
Leandro RochaOlá Henrique, muito obrigado pela rápida resposta.
O erro que dá no audit log é:
SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Internal Server Error
MP: Exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Internal Server Error
Delivery of the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Internal Server Error. Setting message to status failed.
A mensagem que aparece no adapter é a padrão do SOAP Document:
- <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
- <SOAP:Header xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:wsse="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
- <SAP:Main versionMajor="3" versionMinor="0" SOAP:mustUnderstand="1" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="wsuid-main-92ABE13F5C59AB7FE10000000A1551F7">
<SAP:MessageClass>ApplicationMessage</SAP:MessageClass>
<SAP:ProcessingMode>synchronous</SAP:ProcessingMode>
<SAP:MessageId>dfe81887-3f6a-55f1-b933-0050568169b4</SAP:MessageId>
<SAP:TimeSent>2010-11-04T13:36:35Z</SAP:TimeSent>
- <SAP:Sender>
<SAP:Party agency="" scheme="" />
<SAP:Service>NFe_recepcao</SAP:Service>
</SAP:Sender>
- <SAP:Receiver>
<SAP:Party agency="" scheme="" />
<SAP:Service>SEFAZ_RS</SAP:Service>
</SAP:Receiver>
<SAP:Interface namespace="http://www.gerdau.com.br/nfe">NFe_recepcao_inbound_sync</SAP:Interface>
</SAP:Main>
- <SAP:ReliableMessaging SOAP:mustUnderstand="1">
<SAP:QualityOfService>BestEffort</SAP:QualityOfService>
</SAP:ReliableMessaging>
- <SAP:Diagnostic SOAP:mustUnderstand="1">
<SAP:TraceLevel>Information</SAP:TraceLevel>
<SAP:Logging>Off</SAP:Logging>
</SAP:Diagnostic>
- <SAP:HopList SOAP:mustUnderstand="1">
- <SAP:Hop timeStamp="2010-11-04T13:36:39Z" wasRead="false">
<SAP:Engine type="PE" />
<SAP:Adapter namespace="http://sap.com/xi/XI/System">PE</SAP:Adapter>
<SAP:MessageId>dfe81887-3f6a-55f1-b933-0050568169b4</SAP:MessageId>
<SAP:Info />
</SAP:Hop>
- <SAP:Hop timeStamp="2010-11-04T13:36:39Z" wasRead="false">
<SAP:Engine type="IS">is.00.ebsgerd26</SAP:Engine>
<SAP:Adapter namespace="http://sap.com/xi/XI/System">XI</SAP:Adapter>
<SAP:MessageId>dfe81887-3f6a-55f1-b933-0050568169b4</SAP:MessageId>
<SAP:Info>3.0</SAP:Info>
</SAP:Hop>
- <SAP:Hop timeStamp="2010-11-04T13:36:41Z" wasRead="false">
<SAP:Engine type="AE">af.p7d.ebsgerd26</SAP:Engine>
<SAP:Adapter namespace="http://sap.com/xi/XI/System">XIRA</SAP:Adapter>
<SAP:MessageId>dfe81887-3f6a-55f1-b933-0050568169b4</SAP:MessageId>
</SAP:Hop>
</SAP:HopList>
</SOAP:Header>
- <SOAP:Body>
- <sap:Manifest xmlns:sap="http://sap.com/xi/XI/Message/30" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="wsuid-manifest-5CABE13F5C59AB7FE10000000A1551F7">
- <sap:Payload xlink:type="simple" xlink:href="cid:payload-DFE818873F6A21F1B9330050568169B4">
<sap:Name>MainDocument</sap:Name>
<sap:Description />
<sap:Type>Application</sap:Type>
</sap:Payload>
</sap:Manifest>
</SOAP:Body>
</SOAP:Envelope>
Mais uma vez, muito obrigado,
Leandro -
Generating SOAP Envelope when DO NOT USE ENVELOPE option is marked
My scenario: SPROXY => XI => 3rdParty WebService. Communication is synchronous. I've a problem with soap envelope. It is required by webservice, but when I use standard soap envelope generated by SAP I've a problem with receiving response from webservice.
So I want to create my own envelope. For this reason I've used DO NOT USE SOAP ENVELOPE option. Now the challenge comes. How can I create my own soap envelope?
Do you have any working example? Soap envelope should be added to message send from XI to 3rdParty WebService.
Helping answers => a lot of pointsI'm talking about HTTP header.
When I'm sending SOAP request from SAP my whole message looks like when I use soap envelope
POST / HTTP/1.0
Accept: */*
Host: 192.168.132.179:54000
User-Agent: SAP-Messaging-com.sap.aii.messaging/1.0505
Content-ID: <soap-02cce7702b1a11dd9902000c29ee261e[at]sap.com>
Content-Type: text/xml; charset=utf-8
Content-Disposition: attachment;filename="soap-02cce7702b1a11dd9902000c29ee261e[at]sap.com.xml"
Content-Description: SOAP
Content-Length: 259
SOAPACTION:
<SOAP:Envelope xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/'><SOAP:Header/><SOAP:Body><ns0:Sd2Ids_SzfExport xmlns:ns0='http://www.dat.de/sdii/ids/Sd2SOAP.wsdl'><arg1>1234567899-0</arg1><arg2>1</arg2></ns0:Sd2Ids_SzfExport></SOAP:Body></SOAP:Envelope>
Always after such request I got and HTTP 411 error.
In opposite, when I'm sending request from e.g. Altova or SoapUI, my message looks:
POST / HTTP/1.1
Content-Type: text/xml; Charset=UTF-8
User-Agent: XML Spy
Host: 192.168.132.179:54000
Content-Length: 489
Connection: Keep-Alive
Cache-Control: no-cache
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<m:Sd2Ids_SzfExport xmlns:m="http://www.dat.de/sdii/ids/Sd2SOAP.wsdl">
<arg1 xsi:type="xsd:string">1234567899-0</arg1>
<arg2 xsi:type="xsd:string">1</arg2>
</m:Sd2Ids_SzfExport>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
After that request WebService response is correct.
You can find such differences (except Content-length which is a result of XML message formatting) in those two headers:
- for first is used HTTP 1.0 protocol for later 1.1
- in SAP header an info about attachment is added
After a lot of test I thing that those attachment info in header of HTTP is causing a problem. So I want to use DO NOT USE SOAP ENVELOPE option to generate HTTP header without Content-Disposition and generate SOAP Envelope manually. -
Reading Header data in a SOAP Envelope for SOAP Sender Adapter
Hello All,
Am using a SOAP sender adapter and want to use the data inside the SOAP Header for some routing purpose(extended receiver determination). Any SOAP message coming into XI will look something like below. But XI will pass the contents of <SOAP-ENV:Body> to Payload and <SOAP-ENV:Header> to the SOAP Header category you can see that in SXMB_MONI.
Is there a way to read the data in my SOAP Header to be later used in my extended receiver determination.
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:Q-ENV="/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Header>
<Q-ENV:Header>
<Q-ENV:Sender-Id>1</Q-ENV:Sender-Id>
<Q-ENV:Receiver-Id></Q-ENV:Receiver-Id>
<Q-ENV:Correlation-Id></Q-ENV:Correlation-Id>
<Q-ENV:Message-Id></Q-ENV:Message-Id>
<Q-ENV:Date-Sent></Q-ENV:Date-Sent>
<Q-ENV:Document-Type></Q-ENV:Document-Type>
<Q-ENV:Message-Format></Q-ENV:Message-Format>
</Q-ENV:Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<Q-ENV:Body>
<Q-ENV:Content-Type>text/xml</Q-ENV:Content-Type>
<Q-ENV:Message-Type></Q-ENV:Message-Type>
<Q-ENV:Encoding>UTF-8</Q-ENV:Encoding>
<Q-ENV:Message-Body>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Thanks for your replies in advance.
Regards,
PrashanthHello,
but they were not getting any response back from XI and the sending system kept resending the message.. may be it was acting like a HTTP post.
The method that is used by the native SOAP Adapter is always HTTP Post. Not sure why you are not getting a response, have you checked the outbound firewall of the sending party or the inbound firewall of XI? To which SOAP URL are you sending to?
Hope this helps,
Mark -
Receiver SOAP channel error-- Cant parse the document; HTTP 200 OK
Hi All,
I am facing below error in SOAP receiver communication channel
SOAP: Error occurred: com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.io.IOException: Cant parse the document; HTTP 200 OK
If I use "Do Not se SOAP Envelop" in receiver communication channel then it shows successfully delivered in message monitoring but never reached to target application. And if I uncheck "Do Not se SOAP Envelop" then the error is as I mentioned above.
Both ways it not working foe me.
Please advice.
Thanks
ShiviHi
I had a similar issue recent times and I have enablede the xpi inspector to check the logs of the request and the response sent and received...
Based on that you can check whether your payload is able to sent to receiver in proper format or any other issues..
Also try to check the payload format using the SOAPUI whether the ws is working fine for that or not.
HTH
Rajesh -
Synchronous Proxy - SOAP Scenario (Error 500 in Response).
Hi
I've built a few Synchronous Proxy -> SOAP Scenarios,
with 'Do Not Use SOAP Envelope' option.
For two of them, I'm facing a common error.
The error is: ADAPTER.HTTP_EXCEPTION (HTTP 500 Internal Server Error).
When I paste the EXACTLY SAME payload picked up from XI, into the SOAP client, it works giving valid response.
Trying to figure out the issue.
R/3 System:
WAS 620 (Level 0041)
XI System:
PI 7.0 (Level 0007)
SOAP System:
BizRights (Approva) 3.0
Any help is appreciated.
Rajendra.Hi,
Following SAP notes may help you- 804124, 807000
Regards,
Moorthy
Maybe you are looking for
-
Using bind variable with IN clause
My application runs a limited number of straight up queries (no stored procs) using ODP.NET. For the most part, I'm able to use bind variables to help with query caching, etc... but I'm at a loss as to how to use bind variables with IN clauses. Basic
-
Accessing purchased songs after Dell System Restore
I recently had to restore my computer to factory settings, and had to re-download iTunes on my computer. I found that when I tried to listen to songs purchased at the music store, the computer was not authorized, so I had to use one of my five extra
-
Posting keys for account determination for transaction do not exist
Dear SAP Gurus, While release to accounting service sale billing bellow error occurs while i made all necessary changes in VKOA. Posting keys for account determination for transaction do not exist Please guide me to coorect this error. With Regards M
-
How can I access Gmail's web settings (like away messages) on iPad?
I have gmail set up with Mail, and I can access the web app to send and search email fine. But the full web app does not load well or function. I cannot access settings, like Labs or filters or managing multiple From accounts. Does anyone know how to
-
How can i run report in form developer 10g
hi plz help me i type code web.show_document('http://127.0.0.1:8889/reports/rwservlet? server=test report=c:\1.rdf & desformat=htmlcss &userid=scott/tiger@test & destype= cache','_blank'); then i receive a message with error code REP-51002 plz plz he