Remove XI-part of SOAP Header in Axis Adapter

Hi folks!
We are running a PI 7.11 and use the SOAP Axis Sender Adapter in a synchronous SOAP Web Service scenario. Our challenge is that in our response we definitely need a SOAP Header tag, but it should be empty like this <soapenv:Header/> or this <soapenv:Header></soapenv:Header>
We tried to achieve this with the Axis Handler com.sap.aii.axis.soap.HeaderRemovalHandler. But regardless of the parameters we provide to this handler it always removes the complete SOAP Header. On sample is to remove the PI-specific Main header tag from SOAP Header:
name.1=Main
namespace.1=http://sap.com/xi/XI/Message/30
We also tried it only with namespace. But always the same sh... happens: The SOAP Header is removed completely.
Any ideas?
Thanx very much in advance!
Regards,
Volker

Hi Stefan!
Thanx for your reply. We found that Axis handler mentionedby me in SAP Note 1039369 "FAQ XI Axis Adapter" .
But please tell me how to parameterize the java:com.sap.aii.axis.xi.XI30InboundHandler to ensure that the XI part of SOAP header is removed, but not the complete SOAP header.
Thanx in advance!
Regards,
Volker

Similar Messages

  • Overriding Soap Header using Axis(SOAP) Receiver

    Hi Experts,
    I am having a problem in including the SOAP Header in the XML using the SOAP Axis Receiver Adapter. Well I am not sure on how to place this structure in the header:
    <SoapHeader>
        <Header1>
            <child1>
            <child2>
        </Header1>
        <Header2>
            <child1>
            <child2>
        </Header2>
    </SoapHeader
    I have already tried overriding the SOAP Header via Java Mapping but it is not working when I send it to the third-party. I believe this header should be directly encoded using the axis module, but I can only find examples for simple headers and not nested ones...
    Please help.
    Edited by: Mark Dihiansan on Sep 7, 2010 5:15 PM

    Hi,
    you simply place your header template in the handler configuration. If you need to set some values of the header dynamically, you can pass each value in the dynamic configuration header. The axis handler will fill the header with the supplied values.
    The Axis Note 1039369 describes a few header insertion examples that you should look at.
    regards, yza

  • Extract SOAP Header from JMS Adapter PartnerLink

    Hi Chintan,
    I have next problem:
    I have a JMS queue. The message in this queue are "SOAP Message" with Body and SOAP Header.
    I have developed a "BPEL JMS service" with a JMS Adapter PartnerLink.I need extract SOAP Header from PartnetLink JMS Adapter, but with headerVariable into "Receive activity" it´s not work OK.
    Could anybody help me with this problems?
    Thanks a lot.
    Regards.

    HI,
    Try your luck at this link
    http://orasoa.blogspot.com/2007/09/using-custom-headers-in-bpel.html

  • SOAP 1.2 Axis adapter

    Hi guys,
    we are trying to send WS to a vendor using Axis(SOAP 1.2) adapter.
    we are getting below error in response.
    <SAP:AdditionalText>com.sap.engine.interfaces.messaging.api.exception.MessagingException: The message with To '' cannot be processed at the receiver, due to an AddressFilter mismatch at the EndpointDispatcher. Check that the sender and receiver's EndpointAddresses agree.</SAP:AdditionalText>
    Any idea, what might be the cause.....
    -santosh.

    This error is mainly due to mismatch in endpoint URL.  Are you sending the message via dispatcher or load balancing clustering mode? Talk to your target system or vendor.. Looks like there side Address Filter does not configured endpoint of your target URL.  Google this error message for more details.  This is not certainly PI error.

  • Remove Icon part of Advanced DataGrid Header

    Hi,
    I would like to remove the Icon part of the header in the AdvancedDataGrid. I am however unable to find how to do this.
    In the header of every column in the AdvancedDataGrid, on the right side, it shows a pipe symbol and some spacing. After a bit of digging, I found that it was the Icon part of the header. However, I do not use icons in my headers, and I need to use the complete header space for text. This is why the icon part needs te be removed.
    Does anyone have an idea how we can do this?
    Thanks in advance
    Ronald Kamp
    Flex/Java Developer at Ordina Belgium

    Hi Stefan!
    Thanx for your reply. We found that Axis handler mentionedby me in SAP Note 1039369 "FAQ XI Axis Adapter" .
    But please tell me how to parameterize the java:com.sap.aii.axis.xi.XI30InboundHandler to ensure that the XI part of SOAP header is removed, but not the complete SOAP header.
    Thanx in advance!
    Regards,
    Volker

  • SAP PI 7.3 Receiver SOAP Axis adapter header Cookie

    Hello
    We are currently working a synchronous scenario like SAPERP --> PI --> WebService.
    The WebService requires cookie authentication.
    I have successfully tested SOAPUI <-->WebService Scenario.
    The Issue is when I try to put the Cookie in the SOAP header using Axis Frame work.
    1. I have followed the blog How to Set http-Header Parameters Using the Axis Framework (NW7.0)
         Guess the only one available on net.
    2. I have checked my http://<host>:<port>//XIAxisAdapter/MessageServle
         2.1 and the status of the mandatory components are in green.
    3. We are on SAP PI 7.3
    When I try to execute the scenario and capture the SOAP request in TCPGateway the following is the result.
    POST /ABC/ABCService_v1 HTTP/1.0
    Content-Type: text/xml; charset=utf-8
    Accept: application/soap+xml, application/dime, multipart/related, text/*
    User-Agent: Axis/1.4
    Host: MYIPaddress:54000
    Cache-Control: no-cache
    Pragma: no-cache
    SOAPAction: "urn:ABC/DEF/interface/v1.0/TEST/GetCalculation"
    Content-Length: 2228
    The below is the SOAP header from the soapUI application and I am expecting to achieve something similar/workable one with SAP PI.
    POST /ABC/ABCService_v1 HTTP/1.0
    Accept-Encoding: gzip,deflate
    Content-Type: text/xml;charset=UTF-8
    SOAPAction: "urn:ABC/DEF/interface/v1.0/TEST/GetCalculation"
    Cookie: WSL-credential=MyOwnCookie
    Content-Length: 2512
    Host: www.DEVTESTHOST.com
    Connection: Keep-Alive
    User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
    Can anyone pls let me know why I am not able to put the cookie in the SOAP header.
    Anyone who have already tried and was successful in this scenario pls do let me know what I am missing.
    Thanks in advance.
    Regards
    Prasanna

    Hello,
    I am facing the exact same issue.
    I can't seem to set the cookie in the http header after following the guide.
    Cookie: WSL-credential=MyOwnCookie
    I managed to set the SOAPAction though.
    Anyone has any ideas?

  • How to set SOAP Header When Calling Business Service (OSB) Using Split-Join

    Hi,
    We need to call WSDL based webservice which requires heading static content for successful call. As we need to call the same service parallely, hence we want to use Split-Join.
    Looked at couple of forum links, noted that we can't play with headers while working with Split-Join.
    For curiosity, just want to check any option other than using proxy as mediator in setting header information.
    Regards
    Venkata Madhu

    Venkata,
    You still have the option, if you hv n't tried this one.
    To enable this capability, you must declare the header parts along with the body parts in a single request/response message in the Split-Join WSDL and in the WSDL of the proxy or business services invoked by the Split-Join. With the message parts declared in the WSDLs, SOAP header content is available to Split-Joins in the request/response message variables.
    Following is an example of the message and binding definitions in the WSDL.
    Message
    <wsdl:message name="retrieveCustomerOverviewByIdRequestMessage">
    <wsdl:part name="retrieveCustomerOverviewByIdRequest"
    element="co:retrieveCustomerOverviewByIdRequest"/>
    *<wsdl:part name="serviceContext" element="sc:serviceContext"/>*
    </wsdl:message>
    Binding
    <wsdl:input>
    <soap:body use="literal" parts="retrieveCustomerOverviewByIdRequest"/>
    *<soap:header message="tns:retrieveCustomerOverviewByIdRequestMessage"part="serviceContext" use="literal"/>*
    </wsdl:input>
    hope it helps !!
    Regards,
    Abhinav

  • Can ws CC handle soap header data?

    Hello Expert,
    as we know for most of the PI adapters, there is a checkbox Adapter-Specific Attributes which could be used to handle/process protocol's header data. However for ws adapter (PI7.1) this checkbox is not available. Does that mean if certain data is provided in the soap header, PI ws adapter/CC will not be able to retrieve it and process it?
    Please advise.
    Thanks
    Jayson

    Hey Jayson,
    It seems that WS adapter does have a place for the adapter specific attribute setting. I dont have access to the PI system right now... so cant exactly point the exact position for ASA in CC
    But check out this : http://help.sap.com/saphelp_nwpi71/helpdata/en/45/874295b8f64d6de10000000a155369/frameset.htm
    Hope it helps.
    Thanks,
    Pooja Pandey

  • faultstring SOAPAction /faultstring ---  Error in Axis Adapter

    Hi All,
    I am doing an sender https scenario. My end customer uses ariba to send messages to XI. They dont want to use username and pwd to send the document. So we have eliminated the soap adapter (because it asks for username and pwd to send the request). Now we are using axis adapter (where we have removed the user and pwd paramters in axis adapter itself). So it dont ask for username and pwd anymore for any of the axis comm. channel.
    Now the issue is when we send a https request to my url(I have created wsdl using xI and took the url from it) using SOAP UI I am able to get it into xi. But when they use ariba or Fiddler (we can download free for testing) they are getting an error message like:
    <soapenv:Body>
      <soapenv:Fault>
       <faultcode xmlns:ns1="http://xml.apache.org/axis/">ns1:Client.NoSOAPAction</faultcode>
       <faultstring>SOAPAction</faultstring>
       <detail>
        <ns2:stackTrace xmlns:ns2="http://xml.apache.org/axis/">SOAPAction
         at com.sap.aii.adapter.axis.web.ServletReceiverCore.getSoapAction(ServletReceiverCore.java:665)
         at com.sap.aii.adapter.axis.web.ServletReceiverCore.doPost(ServletReceiverCore.java:273)
         at com.sap.aii.adapter.axis.web.MessageServlet.doPost(MessageServlet.java:392)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    When I researched this it seems xi is expecting a soap action. But they dont have an option to add the soap action on their side. Now I am struck what to do.
    When I googled for this error, it seems it is not error with xi, it is with the apache axis itself. It seems like by default apache axis expects a soapaction and if we dont want to send then we need to give soapaction as "" (which is null). I dont know where to give this. I assume that we need to change the jar file somewhere on axis adapter. No idea where it is and what to do with this approach.
    Also I have seen stefans weblog:
    /people/stefan.grube/blog/2006/09/21/using-the-soap-inbound-channel-of-the-integration-engine
    With this first I need to create an https abap port. Then I can use soap adapter directly by sending username and pwd directly to the url. But the catch here is also to send soapaction which in our case is not possible.
    Can anyone of you please help me out.
    Regards,
    ---Satish

    Satish,
    I think the easiest solution is to
    1. configure https on the ABAP stack: in trx STRUST you can use the same SSL certificate used to setup SSL in the KeyStorage service of V.A. so that calling the ABAP http or the J2EE http will be copletely transaprent to your SSL client (i.e. ARIBA)
    2. use HTTP plain adapter ( <host>:<abap_https_port>/sap/xi/adapter_plain )
    - you get rid of the SOAP envelope and SOAP action issue, as the XML payload posted by Ariba will be immediately treated as a PI message payload
    - here also you can use the same two parameters as per Stefan's blog (&sap-user=<username>&sap-password=<password>) and thus get rid of the authentication issue.
    Stuff sent to the plain_adapter is handled by the CL_HTTP_PLAIN_INBOUND class (use trx SE24 to take a look) and method IF_HTTP_EXTENSION~HANDLE_REQUEST: there are a number of parameters that can be supplied by the client calling it (i.e. Ariba). See below an excerpt.
    * call-syntax:  XI 3
    * http://hostname:port/path
    *                      ?namespace=???
    *                      &interface=???
    *                      &service=???
    *                      &party=???
    *                      &agency=???
    *                      &scheme=???
    *                      [&qos= EO|BE|EOIO]
    *                      [&msgguid=???]
    *                      [&queueid=???]
    *                      [&trace=[1|2|3]]
    I am strongly convinced that this is the far easiest solution. Programming Axis handlers can be tricky though fascinating (I've written a nice one I'll probably blog about as soon as I get a chance.) But I will nevertheless try to simulate your Axis issue when I get access to a machine like your own.
    Cheers,
    Alex

  • What exactly can AXIS Adapter do?

    Can someone give me a scenario when only SOAP Adapter is not enough and I will have to deploy AXIS adapter to complement SOAP adapter? Is AXIS adapter useful even if i am not implementing any 'message-level' security?
    Can message be posted to AXIS adapter without clinet having to authenticate to AxisAdapter?
    I have an XI web service that my clinet is unable to consume as they don't know how to authnticate to SOAP adapter before sending a SOAP message. We don't have any 'message-level' security, but SOAP adapter requires Basic authentication. Client is able to pass Authentication details in SOAP Header but I guess they first need to authenticate to SOAP adapter  before sending SOAP messages. can AXIS adapter accept incoming SOAp messages without user authenticating and then extract Logon details from SOAP header and authenticate client.
    Thanks,
    Saurabh

    The Axis framework provides the following:
    &#9679;      Message protocols SOAP 1.1 and SOAP 1.2
    &#9679;      Transport protocols HTTP/S, SMTP, file
    &#9679;      Various user authentication procedures (Basic, Digest, NTLM, SAP Assertion Tickets)
    &#9679;      Various encapsulation formats (MIME, DIME, MTOM)
    &#9679;      You can add your own Axis handlers to the module chain by using the HandlerBean module
    Soap 1.2 message protocol is available for AXIS Soap Adapter.
    please visit the article
    /people/andre.stuij/blog/2008/04/23/principal-propagation-in-ccbpm-finally-made-possible
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b092777b-ee47-2a10-17b3-c5f59380957f
    http://help.sap.com/saphelp_nw70/helpdata/en/45/a4f8bbdfdc0d36e10000000a114a6b/frameset.htm

  • Remove Soap Header while calling a WS from BPEL 11g

    Hi
    My requirement is to remove the entire SOAP Header tag in the invoke activity. How this can be achieved? Please help
    thanks
    Sesha

    Note sure if this possible.. but just wondering if you can try using <bpelx:remove> extention to delete the soap header variables..
    Other viable option is to write SOAP Message handlers on your outbound webservices...

  • Query reg adding custom tags in SOAP Header - AXIS Receiver Adapter

    Hi All,
    I need to send custom tags as mentioned below to my traget webservice application. I think I can do this with Receiver AXIS adapter but not sure how it can be done. Can any of you suggest?
                                                  <WSContext>
                   <FromAppId>ABC</FromAppId>
                   <ToAppId>XYZ</ToAppId>
              </WSContext>
    Thanks,

    If you want to add custom tags in the soap header, one possible solution is use XSLT mapping or Java mapping to create header first then do message mapping for mapping the payload structure between your source and target  as usual.
    So in operation mapping you sequence mapping like this... first XSLT mapping for custom tags for the SOAP Header followed by payload mapping.
    Hope that helps.
    Search SDN for XSLT Mapping for soap header. Already we have handled these issues.

  • Apache Axis Soap Envelope soap:Header

    <?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>
    <DataHeader xmlns="http://mySite/">
    <HeaderUsername>string</HeaderUsername>
    <HeaderPassword>string</HeaderPassword>
    </DataExportHeader>
    </soap:Header>
    <soap:Body>
    <ReturnDataList xmlns="http://mySite/">
    <functionName>getAll</functionName>
    </ReturnDataList>
    </soap:Body>
    </soap:Envelope>
    I am using Apache Axis, how can i embed DataHeader{HeaderUsername, HeaderPassword} in my request? Thanks,

    I can generate the code from .wsdl by using JAP+RPC, but there is not Header class in the code. Any help?

  • HTTP AXIS - Add soap header element

    Hi,
    I want to use WS-Security in my SOAP flow. But I want also add an attribute inside the soap header.
    Here is what I want :
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP:Header>
            <OPER_REF>SAPPI</OPER_REF>
       </SOAP:Header>
       <SOAP:Body>
          <ns2:createSapProductRequest xmlns:ns2="http://www.blabla.com/">
             <productCode>000000000001101238</productCode>
                  </ns2:createSapProductRequest>
       </SOAP:Body>
    </SOAP:Envelope>
    It works fine without security option (I used an HTTP - SOAP adapter) with Java mapping
    Now I want to add WS-Security options :
    <wsse:Security SOAP:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";>
             <wsse:UsernameToken wsu:Id="UsernameToken-17224938" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";>
                <wsse:Username>sp</wsse:Username>
                <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">Cv1nK/fX6p8C74aHMJ0iILpeAsc=</wsse:Password>
                <wsse:Nonce>SBjsJ0qqXPNNPfUVP8u87A==</wsse:Nonce>
                <wsse:Created>2009-06-26T07:28:31.720Z<;/wsse:Created>
             </wsse:UsernameToken>
          </wsse:Security>
    I reach that with the Java mapping but the generation of the password is not efficient because if there is a problem in the flow, the password has to be regenerated when the message it is send to the receiver. So the password generation has to be inside the receiver adapter not in the mapping itself.
    So I would like to use HTTP AXIS adapter, but it cannot deactivate the SOAP envelope so I can't add my parameter OPER_REF inside the soap header.
    I'm not sure i'm clear so do not hesitate to ask questions.
    Thanks
    Regards

    Solve with Java Mapping.

  • Archiving of Soap header part for a synchronous interfaces

    We have a requirement where we have to retain the soap header details for a longer period for tracking purpose. So is there any option of archiving only soap header part from the message for a synchronous interface.
    More Information about the requirement:
    1. We will be passing some parameters to the XI Soap header.
    2. In the WSDL we will add the header fields, so that the end system can populate them.This is done for tracking and searching the message, end to end.
    3.  Another thing to note, is that, for synchronous messages the payload will not be available (without enabling logging), Can we search the messages using the values in the header?
    4. The above process is done, keeping in mind that when the messages are archived, the XI soap header will be the only thing that will be archived and not the whole payload, and the messages that are archived can be searched or retrieved based on the values in the XI Soap header.
    Regards
    Nitya

    Hi,
    Glad to hear that you solve this issue, thanks for your sharing.
    Thanks,
    Linda Li
    Linda Li
    TechNet Community Support

Maybe you are looking for

  • *sequence could not be opened...

    related to the other discussion thread in reference to the video exports having a blue tint... due to the blue tint issue - I found that it likely was the graphics card in the laptop that was causing the issue... so I transfered the CS5 files/project

  • RZ21 Auto Alert Method

    Hi, I have followed the SAP help portal and OSS note 176492 to setup alert monitoring in client 000. I wanted to create a single alert to send emails when the sapreorg on the CEN filesystem reaches the precentage used threshold levels. The pre-reqs d

  • Newbie:  type size

    I'm doing a CD booklet for a 3 cd set for my own company.  Most of the type is 10 pt Baskerville. But I have some pages just THICK with personnel (big bands, etc.).  I think I know the answer to this, but... 5 pt is too small to read, right?  (I've d

  • Change the Transportation zone - No jurisdiction code could be determined

    Dear All, when trying to change the Transportation zone for the customer of Brazil , Error message comes as : No jurisdiction code could be determined Message no. TAX_TXJCD101 Even you change a single character in the address any where e.g. Name, Cit

  • Extended events /actions definitions

    One of the shortcomings I seem to keep stumbling across is that event action definitions are no where to be found.  I've been searching for weeks and can't find a resource from Microsoft which helps me understand the official definition for an action