Encryp and sign the SOAP Body in 8.1 SP2

Hi,
I have deployed a web service with security enabled for encrypting, signing and requires username token.I have written a client for the service and it works fine with 8.1 SP3.
when i build the same app with 8.1 SP2 and deploy it gets deployed and everything is fine until the client invokes the service. I can see the request SOAP message going properly with a tunneling tool, but i get this error in the response.
<env:Fault>
<faultcode>env:Server</faultcode>
<faultstring>Exception during processing: weblogic.utils.AssertionError: ***** ASSERTION FAILED *****[ Unable to secure response ] - with nested exception:[weblogic.xml.stream.XMLStreamException: Object not initialized. - with nested exception:[weblogic.xml.security.encryption.EncryptionException: Object not initialized. - with nested exception:[com.rsa.jsafe.JSAFE_InvalidUseException: Object not initialized.]]] (see Fault Detail for stacktrace
Any Idea what would be wrong ? Does SP2 support WS Security ?
regards,
Arun

Hi,
i contacted BEA support and gotto know that this is a known issue.
There was a bug when Message Level Security was enabled for Web Services in WLS 81sp2. If the request message exceeded a certain size, WebLogic Server was throwing the JSAFE_InvalidUseException when trying to encrypt the response.
The buffer size was increased to accommodate large request messages and allow their encryption. As a result, WLS 81 sp4 no longer throws the JSAFE_InvalidUseException when trying to encrypt a large request message.
There is a patch available for sp2, i got the patch CR190527_810sp2.jar and applied it. It works fine now.
thanks
Arun

Similar Messages

  • Extract fields from the SOAP body during mapping

    Hi all,
    I have an Abap Proxy to SOAP scenario with a main payload and an attachment. During mapping I need the reference of the attachment to store the reference in the main payload. I don't need the attachment itself.
    SOAP-Body:
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Eingangs-Message
      -->
    - <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:href="cid:payload-E742FF47D930DE5CE1000000C107826A @sap.com">
      <SAP:Name>MainDocument</SAP:Name>
      <SAP:Description />
      <SAP:Type>Application</SAP:Type>
      </SAP:Payload>
    - <SAP:Payload xlink:href="cid:payload-EE42FF47D930DE5CE1000000C107826A @sap.com">
      <SAP:Name>hugo.txt</SAP:Name>
      <SAP:Description />
      <SAP:Type>ApplicationAttachment</SAP:Type>
      </SAP:Payload>
      </SAP:Manifest>
    I need the attachment reference as string inside my main payload: cid:payload-EE42FF47D930DE5CE1000000C107826A @sap.com
    I wrote an user defined function to select the MessageId, but the MessageId is only part of the reference to the main payload.
    String constant;
    java.util.Map map;
    map = container.getTransformationParameters();
    constant = (String) map.get(StreamTransformationConstants.MESSAGE_ID);
    return constant;
    Has anybody an idea to get the reference of the attachment from the SOAP body with an user defined function or an adapter module?
    Thanks and kind regards
    Frank

    Hello,
    thank you all for the information. I found a solution for my problem on the sender side. I wrote an own helper class with  the method create_attach_from_txt_withref. This method  build an attachment with an own reference and write the reference back to the payload.
    This reference will not be changed within the execute_asynchronous method of the proxy.
    Method parameters:
    P_DATA        Importing   Type     STRING
    P_TYPE        Importing   Type     STRING
    P_NAME        Importing   Type     STRING
    P_ATTACHMENT  Exporting   Type Ref IF_AI_ATTACHMENT
    P_AREF        Exporting   Type     STRING
    Method coding:
    METHOD create_attach_from_txt_withref.
      DATA: lo_attachment TYPE REF TO cl_ai_attachment,
            l_payload     TYPE REF TO if_xms_payload,
            l_pref        TYPE        sxms_mf_s,
            l_guid        TYPE        guid_32,
            l_aref        TYPE        string.
      CLASS cl_ai_factory DEFINITION LOAD.
    " create the attachment
      p_attachment = cl_ai_factory=>create_attachment_from_text(
                    p_data = p_data             " attachment data
                    p_type = p_type             " attachment type
                    p_name = p_name ).          " attachment name
    " we need an implementing class of the interface if_ai_attachment
      lo_attachment ?= p_attachment.
    " get the new payload
      l_payload = lo_attachment->get_payload( ).
    " get the reference of the payload
      l_pref = l_payload->getreference( ).
    " build an own reference
      CALL FUNCTION 'GUID_CREATE'
        IMPORTING
          ev_guid_32 = l_guid.
      CONCATENATE 'payload-' l_guid '@sap.com' INTO l_aref.
      CONCATENATE 'cid:'     l_aref            INTO l_pref-href.
    " set our own reference
      l_payload->setreference( reference = l_pref ).
    " write back the modified payload
      lo_attachment->set_payload( p_payload = l_payload ).
    " return of the reference
      p_aref = l_aref.
    ENDMETHOD.
    If anybody has an idea how to read the soap body within an adapter module please let me know.
    Regards
    Frank

  • OSB 11g - Authentication - Username and password in SOAP body

    Hi,
    I have a PS based on the WSDL provided by the client. According to the WSDL the client will send the username and password (to be used for authentication) in SOAP Body. I have extract the username and password from the body and authenticate it and then only process the data.
    The approach I am thinking of is to create two PS. The first PS will be called by client to send the data. There will be no authentication required for this PS. Once this PS (PS-1) receives the message it will extract the username, password and data from the SOAP body. It will then set the username and password in the HTTP header of the second PS (PS-2) and the data in the SOAP body of PS-2.
    PS-2 will be under basic authentication. PS-2 will accept the data as the only payload. Upon receiving the data it will do the normal processing.
    But I do not see any way to set the HTTP header (Authorization) for the second PS. Is my approach correct? Is there another/better approach?
    I went through this link [http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/security/model.html] and found that we may have to configure another Authentication provider. How to do that?
    Thanks,
    Sanjay

    Hi Sanjay,
    Your approach seems correct to me (using two proxies) but instead of setting the username and password in HTTP header, you may set it as SOAP header and use Custom Authentication method in OSB. To know more about it, please refer -
    http://download.oracle.com/docs/cd/E17904_01/doc.1111/e15866/message_level_cust_auth.htm#i1069719
    Regards,
    Anuj

  • Content of the soap body

    I've this wsdl taken from the wsdl specification documentation.
    <?xml version="1.0"?>
    <definitions name="StockQuote"
    targetNamespace="http://example.com/stockquote.wsdl"
    xmlns:tns="http://example.com/stockquote.wsdl"
    xmlns:xsd1="http://example.com/stockquote.xsd"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns="http://schemas.xmlsoap.org/wsdl/">
    <types>
    <schema targetNamespace="http://example.com/stockquote.xsd"
    xmlns="http://www.w3.org/2000/10/XMLSchema">
    <element name="TradePriceRequest">
    <complexType>
    <all>
    <element name="tickerSymbol" type="string"/>
    </all>
    </complexType>
    </element>
    <element name="TradePrice">
    <complexType>
    <all>
    <element name="price" type="float"/>
    </all>
    </complexType>
    </element>
    </schema>
    </types>
    <message name="GetLastTradePriceInput">
    <part name="body" element="xsd1:TradePriceRequest"/>
    </message>
    <message name="GetLastTradePriceOutput">
    <part name="body" element="xsd1:TradePrice"/>
    </message>
    <portType name="StockQuotePortType">
    <operation name="GetLastTradePrice">
    <input message="tns:GetLastTradePriceInput"/>
    <output message="tns:GetLastTradePriceOutput"/>
    </operation>
    </portType>
    <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="GetLastTradePrice">
    <soap:operation soapAction="http://example.com/GetLastTradePrice"/>
    <input>
    <soap:body use="literal"/>
    </input>
    <output>
    <soap:body use="literal"/>
    </output>
    </operation>
    </binding>
    <service name="StockQuoteService">
    <documentation>My first service</documentation>
    <port name="StockQuotePort" binding="tns:StockQuoteBinding">
    <soap:address location="http://example.com/stockquote"/>
    </port>
    </service>
    </definitions>
    I developed the service implementation and a service client using wsimport, jaxb, jaxws.
    Trying running the client I get the exception:
    Cannot find dispatch method for {http://example.com/stockquote.xsd}TradePriceRequest
    Running the message request generated by soapUI has the same effect.
    The soap message request generated by soapUI, given the above WSDL, is:
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:stoc="http://example.com/stockquote.xsd">
    <soapenv:Header/>
    <soapenv:Body>
    <stoc:TradePriceRequest/>
    </soapenv:Body>
    </soapenv:Envelope>
    but in the wsdl spec it should be:
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
    <m:GetLastTradePrice xmlns:m="Some-URI">
    <m:tickerSymbol>DIS</m:tickerSymbol>
    </m:GetLastTradePrice>
    </soapenv:Body>
    </soapenv:Envelope>
    In other word, the content of the soap body should be the wsdl operation or the complex type representing the input part?

    I am a newbie, so I don't know if my reply will be helpful.
    Reading the fault "Cannot find dispatch method for {http://example.com/stockquote.xsd}TradePriceRequest", I think the problem is that TradePriceRequest is a type for a message and it is treated as an operation. The content of the SOAP message should be the operation (GetLastTradePrice) and nested inside the operation should be the parameters for the operation (the complex type...). So the answer is probably "both", one inside the other.
    I think that the message as you wrote it:
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
    <m:GetLastTradePrice xmlns:m="Some-URI">
    <m:tickerSymbol>DIS</m:tickerSymbol>
    </m:GetLastTradePrice>
    </soapenv:Body>
    </soapenv:Envelope>
    is correct.

  • Error_: ACS10002: An error occurred while processing the SOAP body

    Hi all,
    We have problem to connect MSCRM online via SDK since yesterday.   All of our MSCRM Online organizations have this issue.  Anyone has the same issue?  
    Error : ACS10002: An error occurred while processing the SOAP body. ACS50000: There was an error issuing a token. ACS50005: Token encryption is required but no encrypting certificate is configured for the relying party.
    Gary

    This is a server side webcache from the OTN site. Not anything client-related. Its a bug that cannot be fixed at this time as OTN is on an EOL version of software. The good news is that most of OTN is moving to a new CMS on the 19th and these errors will disappear.
    In the meantime, if you add a parameter refresh to the URL you get the error on, most of the time, you can get the page back. Parameter refresh is done by adding ?a=b to the end of the URL. You can keep changing the combo too. (i.e. ?c=d)

  • Missing namespace prefix in the soap body

    Hello
    The soap body that is produced along with soap header for my webservice. I
    am the client talking to a server. The first piece in RED color is what
    weblogic generates to send to the client but does NOT work. The one below
    though works fine which is what I manipulated by hand to send to the
    server. I have no idea why weblogic drops the namespace prefix in the
    BODY.
    -Narahari
    The message is as shown below
    POST /FS HTTP/1.1
    Host: asgappsrv10:6211
    Content-Type: text/xml; charset=utf-8
    Connection: close
    SOAPAction: "ListDomains"
    <?xml version="1.0" encoding="utf-8"?>
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <env:Header>
    <n1:Credentials xmlns:n1="urn:criticalpath:fs:api:1.0"
    xsi:type="n1:Credentials">
    <Username xsi:type="xsd:string">admin@default</Username>
    <Password xsi:type="xsd:string">password</Password>
    <SessionId xsi:nil="true"/>
    </n1:Credentials>
    </env:Header>
    <env:Body
    env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <Fulfill xmlns:n2="urn:criticalpath:fs:api:1.0"
    xsi:type="n2:Fulfill">
    <Request xsi:type="xsd:string">ListDomains</Request>
    <RequestAttributes soapenc:arrayType="n2:Attribute[0]"/>
    <Async xsi:type="xsd:boolean">false</Async>
    </Fulfill>
    </env:Body>
    </env:Envelope>
    When you see the data carefully, the env:Body has the Fulfill element. But
    it does have a namespace prefix on it. This causes the call to fail. If I
    change the above segment manally to look like
    POST /FS HTTP/1.1
    Host: asgappsrv10:6211
    Content-Type: text/xml; charset=utf-8
    Connection: close
    SOAPAction: "ListDomains"
    <?xml version="1.0" encoding="utf-8"?>
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <env:Header>
    <n1:Credentials xmlns:n1="urn:criticalpath:fs:api:1.0"
    xsi:type="n1:Credentials">
    <Username xsi:type="xsd:string">admin@default</Username>
    <Password xsi:type="xsd:string">password</Password>
    <SessionId xsi:nil="true"/>
    </n1:Credentials>
    </env:Header>
    <env:Body
    env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <n2:Fulfill xmlns:n2="urn:criticalpath:fs:api:1.0"
    xsi:type="n2:Fulfill">
    <Request xsi:type="xsd:string">ListDomains</Request>
    <RequestAttributes soapenc:arrayType="n2:Attribute[0]"/>
    <Async xsi:type="xsd:boolean">false</Async>
    </n2:Fulfill>
    </env:Body>
    </env:Envelope>

    Hi All,
    we are also facing the same issue, Please provide the solution if anyone knows. We are also using the SOA Suite 11g Version.

  • "you must first sign in to iTunes Connect and sign the relevant contracts": how?

    I'm trying to get my iBook (made in iBooks Author) up on the iTunes store and am stuck.
    I now have an iTunes Connect account into which I can sign in.  When I try to use iTunes producer, and enter my login info (which works on the browser), it tells me
    "There is a problem with your login information. To use this application, you must first sign in to iTunes Connect and sign the relevant contracts."
    I'm not sure what a "relevant contract" would be.  I look at "Contracts, Tax, and Banking" at iTunes Connect, and there is one entry with Contract Type "Book". However, I can't request it (that is grayed out), and the "Legal Entity" pull down does not show me (as found in the "Manage Users"), but only shows "select".
    I therefore can't seem to find a way to do anything to allow me to login with my book via Producer to get it "produced."
    Does anyone know what is going on? 
    The FAQ is a blank page, the "Contact us with questions" asks you to pull down a topic and has no topics there! Very clumsy path to publishing (comparing to CreateSpace, for example). After the ease of iBooks Author it's like hitting a brick wall at 100 mph.

    OK, I saw the link for the help video at the bottom - it helped.  I have to add a new entity.  I was fooled thinking I would already be there and that the entry was me, but it is apparently a general placeholder into which numerous entities can go.  For me this was not obvious at all, and I only figured that out by watching the video (which was not easy to spot!).
    I'll go through the process now and hopefully no more confusions.

  • I keep getting prompted to instal Reader and sign the agreement.  But it is already installed.

    When I try to use Reader in one application I keep getting prompted to install Reader and sign the agreement, even though it is already installed.

    Have you accepted the EULA? How this is done depends on your platform, which we don't know.

  • Digitally Signing specific SOAP elements using Java Mapping

    Hello SDNers,
    Iu2019m having trouble creating java mappings to sign and verify digital signatures.  Iu2019m new to Java so this is proving difficult.  I understand the basic concepts of OO programming and utilizing classes/objects to build the program, but Iu2019m having trouble with the conceptual understanding of how I would like to get this done.
    I have outbound and inbound messages.  The outbound messages are originating from an ECC backend.  The messages are processed through PI with a basic Message Mapping, then it is wrapped in a SOAP envelope with specific information using a XSL mapping and then I would like to use a Java Mapping to Digitally Sign specific portions of the entire message; specifically around an element in the SOAP header and sign the SOAP body.  I also need to verify these sections for all inbound messages.
    The simple pseudo code I have for the outbound messages is as follows:
    <ol>
    <li>1. read in xml (file input stream)</li>
    <li>2. find the (specific information)</li>
    <ol>
    <li>a. assign that string to a variable</li>
    <li>b. sign this variable with the security profile (keystore, private key)</li>
    <li>c. e-write the variable into the main xml file</li>
    </ol>
    <li>3. find the soap body</li>
    <ol>
    <li>a. assign that string to a variable</li>
    <li>b. sign this variable with the security profile (keystore, private key)</li>
    <li>c. re-write the variable into the main xml file</li>
    </ol>
    <li>4. write the output file with both variables written (file output stream)</li>
    </ol>
    Currently Iu2019m using PI 7.1 so there is no more Visual Administrator tool.
    Iu2019ve seen the examples from the last link, but I canu2019t seem to put it together when mixed with basic java mapping example.  I have been searching the SDN forums for a while now, but hereu2019s my specific question:  how do you create a java mapping to sign and verify specific elements of a SOAP message?
    Thanks in advance,
    Jason

    Hi Jason, did you ever architect a solution for this?

  • Can SOAP body have multiple immediate children without splitting the msg

    We have a vendor we need to send a SOAP message to, but they require the SOAP body have two different immediate children.  In graphical mapping this doesn't seem to be possible. 
    If we create separate external definitions for each, then they would become separate target messages once added to a message mapping.  If we try to combine the XSDs into one, import it as an external definition, and add it to the mapping, It prompts us to choose one of the elements of the external def from the top level.  The only way to choose a second is to add another, which again results it two separate target messages.
    Is our vendor's request compliant with W3C standards?  If so, is this just a limitation of graphical mapping and what are the most common workarounds in PI?

    >>If we create the SOAP envelope with our mapping, then does that affect the ability to use the SOAP adapter to provide a digital signature?
    This is what I would do. Consider synchronous scenario. If you sign the message digitally and send it to system A (say outbound)  and you need to have the same soap message structure (inbound)  during signature verification. Otherwise signature verification process will fail.
    Do as follow
    Outbound
    A) First mapping: Adding soap envelope  using (XSLT mapping) or java mapping or any way
    B) Second mapping: Signing the message using digital signature via java mapping
    Inbound
    First mapping should be digital signature verify using java mapping
    if the requirement to remove/modify saop envelope on the inbound side or any changes in structure only after the signature verification

  • How to add exactly 2 NON XML caracters at the end of a SOAP body

    Hello all I am trying to add two (and only two) extra non xml caracters "AA" at the END of a SOAP body using the JAXWS handlers as so:
    HTTP/1.1 200 OK
    Content-Type: text/xml;charset=UTF-8
    Content-Length: 131
    Content-Length: 131
    Server: Jetty(7.x.y-SNAPSHOT)
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body></SOAP-ENV:Body></SOAP-ENV:Envelope>
    AA
    The problem is that if you try to add them to the SOAP body (see code below) you get a XML Unmarshalling exception. If I add "AA" as a soap attachment I get MORE than 2 caracters after the SOAP body (which I don't want)
    Here is the my SOAPHandler code :
    @Override
    public boolean handleMessage(SOAPMessageContext mc) {
    if (Boolean.TRUE.equals(mc.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY))) {
    try {
    SOAPMessage message = context.getMessage()
    String stringSoapMessage= getMsgAsString(message);
    stringSoapMessage += "ss";
    message.getSOAPPart().setContent((Source) new StreamSource(new ByteArrayInputStream(msg.getBytes())));
    message.saveChanges();
    context.setMessage(message);
    } catch (Exception e1) {
    return true;
    public String getMsgAsString(SOAPMessage message) throws SOAPException {
    String msg = null;
    try {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    message.writeTo(baos);
    msg = baos.toString();
    } catch (Exception e) {
    e.printStackTrace();
    return msg;
    so my question is this: is there any way to add exactly 2 non xml caracters at the end of the soap body using jaxws handlers ? I have spent several weeks on this so it is not an easy question...
    Thanks,
    Fred.

    Yes I have done it using CFX interceptors. But the runtime dependencies needed were too big for this particular use. I mean having to use these:
    apache/cxf/cxf-bundle/2.6.0/cxf-bundle-2.6.0.jar
    org/apache/neethi/neethi/3.0.2/neethi-3.0.2.jar                    
    wsdl4j/wsdl4j/1.6.2/wsdl4j-1.6.2.jar
    /org/codehaus/woodstox/wstx-asl/3.2.4/wstx-asl-3.2.4.jar
    org/apache/ws/xmlschema/xmlschema-core/2.0.2/xmlschema-core-2.0.2.jar
    org/mortbay/jetty/jetty-util/6.0.2/jetty-util-6.0.2.jar
    org/eclipse/jetty/jetty-util/7.5.4.v20111024/jetty-util-7.5.4.v20111024.jar
    org/apache/geronimo/specs/geronimo-servlet_2.5_spec/1.1.2/geronimo-servlet_2.5_spec-1.1.2.jar
    org/apache/geronimo/specs/geronimo-javamail_1.4_spec/1.7.1/geronimo-javamail_1.4_spec-1.7.1.jar
    org/apache/geronimo/specs/geronimo-servlet_3.0_spec/1.0/geronimo-servlet_3.0_spec-1.0.jar
    org/eclipse/jetty/jetty-http/7.5.4.v20111024/jetty-http-7.5.4.v20111024.jar
    org/eclipse/jetty/jetty-server/7.5.4.v20111024/jetty-server-7.5.4.v20111024.jar
    org/eclipse/jetty/jetty-io/7.5.4.v20111024/jetty-io-7.5.4.v20111024.jar
    org/eclipse/jetty/jetty-continuation/7.5.4.v20111024/jetty-continuation-7.5.4.v20111024.jar
    to add two caracters at the end of a soap message seems like over kill. If this is the only way to do this then i'll do it this way but it just seems like the implementation of the JAXWS API in JDK 6 seems inches away from being able to do this no ?
    Thanks for the replies,
    Fred

  • Mapping Design  - SOAP body content needs to be different between test and production

    Hello,
    We are integrating with a 3rd party SOAP receiver who uses the same web service URLS for test and production.
    So to differentiate they exposed 2 web services which do the same thing but have different root and payload node names...along with account details.
    For example, for production our SOAP XML must follow pattern like:
    <Envelope>
    <Body>
    <appRequest>
    <userID>produser</userID><password>prodpwd</password>
    <appPayload>
    <?xml>
    blah blah this XML is the same between test and production
    </xml>
    </appPayload>
    etc
    But for their testing we must use:
    <Envelope>
    <Body>
    <appRequestTest>
    <userID>testuser</userID><password>testpwd</password>
    <appPayloadTest>
    <?xml>
    blah blah this XML is the same between test and production
    </xml>
    </appPayload>
    etc
    So I'm trying to think of a good way to handle this difference in one set of mappings that we can use in our 3 PI platforms Dev / Test / Prod
    Since these differences are in the SOAP Body does it need handled in mapping or is there a way to handle it in the Adapter Config which is naturally different between our environments (mapping we like to keep the same).
    What is a smart way to handle this scenario?
    Many thanks,
    Aaron

    I second Artem when he states that this is a bad design decission from the caller's side.
    However this is not gonna help you in the current situation, right?
    The problem you are facing is that by poor design the message does not have a root node which you may use to handle occurences. Let me explain further
    You would be good if prod message looked like so
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header/>
    <soapenv:Body>
      <appData>
       <appRequest>
       </appRequest>
      </appData>
    </soapenv:Body>
    </soapenv:Envelope>
    and test message looked like so
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header/>
    <soapenv:Body>
      <appData>
       <appRequestTest>
       </appRequestTest>
      </appData>
    </soapenv:Body>
    </soapenv:Envelope>
    --> Then you would have been able to specify occurence of <appRequest> and <appRequestTest> as 0..1
    So I think you have (besides what Artem already pointed out) 2 other options:
    1. activate "do not use SOAP envelope" on sender SOAP channel and then designing the data types like above
    2. Use HTTP instead of SOAP adapter and designing data types like above
    Hope I didn't miss something crucial :-)
    Cheers
    Jens

  • Adding WS-Addressing headers and signing them

    Let me begin by stating that I'm a .NET developer using WSE 3.0 to expose a variety of Web services to an external client. We are attempting to leverage WS-Security 1.0. Furthermore, while I know the Java language, I don't have a lot of background with the various frameworks and I have very little experience with Oracle.
    The client is using:
    Oracle iAS 10.1.3, j2ee 1.4, OC4J
    Essentially this is an interop issue. We are trying to get the client's app to communicate with our WSE 3 enabled Web service. At this point we are stumped on two things:
    1. The WSE framework recommends that a SOAP request message contain the WS-Addressing wsa:Action header and that this header is signed. I can disable this requirement but that can expose a minor security vulnerability. So I would prefer to have a wsa:Action header present and included in the signature.
    2. The client has configured their proxy XML file to only sign the Body of the SOAP message. When examining the SOAP message on the wire, it appears that, in addition to the SOAP Body, the signing certificate is referenced in the Signature block. This means the Body and signing BinarySecurityToken are included in the signature. WSE 3.0 doesn't have a built-in policy assertion for this, which means we'll need to create a custom security assertion.
    So my questions are:
    1a. Is there a way to add a WS-Addressing header to the SOAP message using the webservice proxy configuration file? If not, what is the standard procedure?
    1b. Once we add this WS-Addressing header, how do we include it in the signature for the SOAP message?
    2. Is there a way to disable the inclusion of the signing certificate during signature generation so that:
    <tbs-elements>
    <tbs-element local-part="Body" name-space="http://schemas.xmlsoap.org/soap/envelope/" />
    </tbs-elements>
    really just means "sign the Body".
    3. Lastly, where can I find a schema/configuration reference for the Web proxy configuration files? I've searched but must not be using the correct terms.
    Thank you very much in advance. Any help provided is truly appreciated.
    Joel

    Hello
    So my questions are:
    >
    1a. Is there a way to add a WS-Addressing header to
    the SOAP message using the webservice proxy
    configuration file? If not, what is the standard
    procedure?So to add the header the best way will be to use a JAX-RPC handler. You can take a look to The specified item was not found.
    1b. Once we add this WS-Addressing header, how do we
    include it in the signature for the SOAP message?For the signature you should be able to use the Oracle WS-Security implementation to sign the header. See Client configuration
    >
    2. Is there a way to disable the inclusion of the
    signing certificate during signature generation so
    that:
    <tbs-elements>
    <tbs-element local-part="Body"
    name-space="http://schemas.xmlsoap.org/soap/envelope/
    />
    /tbs-elements>
    really just means "sign the Body".I think you should also be able to do that with the/a handler, but I am not sure to follow in detail the process.
    3. Lastly, where can I find a schema/configuration
    reference for the Web proxy configuration files?
    I've searched but must not be using the correct
    terms.See documentation on the client configuration.
    Also I will be pleased to help you more directly since I am very interested with any advanced interoperability development, can you contact me directly: tugdual.grall[at]oracle.com
    regards
    Tugdual Grall

  • How to XI error message will mapped to the SOAP faul message-SOAP(Axis)

    Hi,
      Receiver end I am using SOAP (Axis) adapter and I am getting the system error and I am not getting the payload in SXMB_MONI.
    What ever the error message how do MAP as a SOAP Fault message in SXMB_MONI.
    I found the Solution from OSS note 1039369 but did not explain where to set what parameter and what modules...
    SOAP Fault code
    If parameter Category is XIAdaptger, Area SOAP, Code FAULT
    In this case, parameters P1 and P2 may be set to the fault namespace and fault name. If these parameters are set, the SOAP fault code is set to namespace P1 and name P2. Otherwise, it is set as in other cases.
    For all other cases
    In this case, the SOAP fault code is set to namespace "http://sap.com/xi/XI/Message/30" and name category.area.code, where category, area, code represent the XI error category, area, and code values, respectively.
    SOAP detail
    If parameter ApplicationFault is set
    The SOAP detail child is set to the XI application payload. If, however, the payload extraction mode is set to Envelope, the application payload is taken as the SOAP envelope and the SOAP detail content is set to its body content. Similarly, if the extraction mode is set to Body, the application payload is taken as the SOAP body and the SOAP detail content is set to its content.
    Otherwise
    No SOAP detail content is set in this case.
    Examples
      XI error element
    <sap:Error ...>
      <sap:Category>XIAdapterFramework</sap:Category>
      <sap:Code area="MESSAGE">GENERAL</sap:Code>
      <sap:AdditionalText>Failed to determine a receiver agreement for the given message.</sap:AdditionalText>
    </sap:Error>
    SOAP fault element
    <soapenv:Fault>
      <faultcode xmlns:ns1="http://sap.com/xi/XI/Message/30">ns1:XIAdapterFramework.MESSAGE.GENERAL</faultcode>
      <faultstring>Failed to determine a receiver agreement for the given message.</faultstring>
      <detail/>
    </soapenv:Fault>
    Help appriciated
    Regards,
    Venu.
    Edited by: Venugopalarao Immadisetty on Sep 24, 2009 3:39 PM

    Using Receiver SOAP Axis adapter and I am getting the below exception
    XI error element
    <sap:Error ...>
    <sap:Category>XIAdapterFramework</sap:Category>
    <sap:Code area="MESSAGE">GENERAL</sap:Code>
    <sap:AdditionalText>Failed to determine a receiver agreement for the given message.</sap:AdditionalText>
    </sap:Error>
    and above exception how do I convert as a SOAP Fault message..
    SOAP fault element
    <soapenv:Fault>
    <faultcode xmlns:ns1="http://sap.com/xi/XI/Message/30">ns1:XIAdapterFramework.MESSAGE.GENERAL</faultcode>
    <faultstring>Failed to determine a receiver agreement for the given message.</faultstring>
    <detail/>
    </soapenv:Fault>
    Any idea what modules need to add in Receiver SOAP Axis adapter.

  • Error while sending the SOAP

    Hi All,
    We recently had SP upgrades fro sp09 to SP 17.
    From then we are getting an error as below when tring to send the soap message and the SOAP adapter went to inactive state .Several restarts dint help.
    Source: SAPIntegrationAdapter
    Message: <?xml version='1.0'?>
    <!-- see the documentation -->
    <SOAP:Envelope xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/'>
      <SOAP:Body>
        <SOAP:Fault>
          <faultcode>SOAP:Server</faultcode>
          <faultstring>Server Error</faultstring>
          <detail>
            <s:SystemError xmlns:s='http://sap.com/xi/WebService/xi2.0'>
              <context>XIAdapter</context>
              <code>ADAPTER.JAVA_EXCEPTION</code>
              <text><![CDATA[
    com.sap.aii.af.mp.module.ModuleException: either no channelID specified or no channel found for the specified party, service, and channel name, MessageServlet(Version $Id: //tc/xi/NW04S_17_REL/src/_adapters/_soap/java/com/sap/aii/af/mp/soap/web/MessageServlet.java#2 $)
                    at com.sap.aii.af.mp.soap.web.MessageServlet.doPost(MessageServlet.java:421)
                    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
                    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
                    at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
                    at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
                    at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386)
                    at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364)
                    at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039)
                    at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265)
                    at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
                    at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
                    at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
                    at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
                    at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
                    at java.security.AccessController.doPrivileged(Native Method)
                    at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:102)
                    at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172)
              ]]></text>
            </s:SystemError>
          </detail>
        </SOAP:Fault>
      </SOAP:Body>
    </SOAP:Envelope>
    any clues would be helpful.
    Thanks,
    Srinivasa

    1. it clearly states that it is not able to find the sender channel name..
       what i would suggest is create the WSDL again and send it to the sender system..
    2. also acivate the SOAP adapter and start and stop the SOAP adapter.
    Also if this doesnot help you can restart your java enjine

Maybe you are looking for

  • Ios 4.2 for ipad ... ?

    So, guys... its the 29th of october (3 days till november) When do you reckon 4.2 will be avaliable for ipad since we were promised it in november? dying for multitasking!

  • Pwdlastset appears to be incorrect

    We have four Win 2008 R2 Enterprise DCs.  Approximately 7500 user objects. Last Wednesday a user called in that her password had expired. Her pwdlastset attribute in AD Users and Computers showed a time of 2:30am that morning.  This timeframe didn't

  • Need steps for rehosting FR currently running on windows 2008 R2 to LinuxOS

    Need steps for rehosting FR server currently running on windows 2008 R2 to Oracle Linux 5 OS I found something for essbase in oracle EPM whitepaper library but not for FR. Did anyone of you out there try this. Any ideas/thoughts. Thanks in Advance

  • Unexpected Error message appears every time I try to open After Effects.

    A message saying Unexpected Error appears every time I try to open After Effects. I can't use the application as a result. ANY IDEAS?????

  • FCE HD import size versus export - settings?

    I have an issue with FCE HD4 - I am confused by the "System Settings" versus "Easy Setup", and why my exporting looks very different from my source material. I apologize if I'm using the wrong terms but I hired 2 people with pro cameras for this job