AXIS framework in SOAP adapter

Hi,
I am working on PI 7.1. I need to understand about the use of AXIS framework in the SOAP adapter.
Please throw some light on the what exactly is AXIS framework and why is it used while configuring the SOAP adapter.
Also suggest scenarios where AXIS framework is used.
Ihave gone through the SAP help documents and the following link already, but am unable to get the hang of it:
[http://help.sap.com/saphelp_NW04/helpdata/en/45/a4f8bbdfdc0d36e10000000a114a6b/content.htm]
How Tou2026 Set http-Header Parameters using the Axis Framework
[https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b092777b-ee47-2a10-17b3-c5f59380957f]
Kindly Help

Hi Yashaswee,
Once you create the SDA archive ( SAP Note 1028961 - How to prepare axisproviderlib.sda for Adapter Framework) you have to deploy it on the J2EE engine of PI.
To check it is correctly deployed or not use the following URL:
http://<systemhost>:<systemport>/XIAxisAdapter/MessageServlet
You will see a screen like this:
An useful case that used the AXIS Framework in the SOAP Adapter to store cookie values is the blog post of Prabhat Sharma:
http://scn.sap.com/community/pi-and-soa-middleware/blog/2013/08/02/pidoc-integration-between-non-sap-system-and-sfsf-bizx--part-i
Regards.
Rodrigo.

Similar Messages

  • Axis Framework in SOAP Adapter in  PI 7.1

    Hi Experts,
    I am working on PI 7.1 . I just need to know all that I can about Axis Framework in SOAP Adapter
    All inputs are welcome.
    Many thanks,
    Neha

    Hi !
    have a look on these links
    Using the Axis Framework in the SOAP Adapter
    http://help.sap.com/saphelp_NW04/helpdata/en/45/a4f8bbdfdc0d36e10000000a114a6b/content.htm
    http://help.sap.com/saphelp_nwpi71/helpdata/en/69/a6fb3fea9df028e10000000a1550b0/frameset.htm
    Have a look at this Pdf
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b092777b-ee47-2a10-17b3-c5f59380957f
    Thanks !
    Abhishek

  • Steps for configuring AXIS framework in SOAP adapter

    hi,
    can anybody tell me step by step procedure on how to configure the AXIS framework in SOAP adapter
    Also can anybody suggest me an appropriate scenario where AXIS framework can be used
    regards,
    loveena

    an appropriate scenario where AXIS framework can be used
    There could be some cases where standard soap adapter does not support a functionality. Like storing cookies value in http header. At that time SOAP axis framework could be used. U may consider AXIS as a new way of impementation of the existing SOAP protocol.
    Regards,
    Prateek

  • Real time scenario for AXIS framework in SOAP adapter

    Hello,
    Can anybody please suggest some real time scenario where AXIS framework can be used
    and what are the advanteges and disadvantages of using AXIS framework
    regards,
    Loveena

    Hi !
    have a look on these links
    Using the Axis Framework in the SOAP Adapter
    http://help.sap.com/saphelp_NW04/helpdata/en/45/a4f8bbdfdc0d36e10000000a114a6b/content.htm
    http://help.sap.com/saphelp_nwpi71/helpdata/en/69/a6fb3fea9df028e10000000a1550b0/frameset.htm
    Have a look at this Pdf
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b092777b-ee47-2a10-17b3-c5f59380957f
    Thanks !
    Abhishek

  • What is the transport protocol File (Axis) in the SOAP Adapter

    Hi,
    for a SOAP Receiver Adapter it's possible to choose 'File (Axis)' as transport protocol.
    How does it work and is there some documentation about it?
    Thanks and regards
    Patrick

    Hi,
    thanks for your answers.
    @Prateek
    Yes I tried -> Doesn't say so much
    @Vinod
    The first thread didn't helped me and I have seen already the second one.
    @kummari
    The question is how can I use it?
    @Gabriel
    >The adapter uses transport protocol(File (Axis)) to send SOAP messages as text file
    Could you please explain it a little more detailed (maybe with an example)?
    My question is about in which scenarios it makes sense to use this transport protocol and how is it used?
    Thanks and regards
    Patrick

  • Security in  Receiver SOAP Adapter (Axis Framework)

    Hi Experts,
    I have one requirement regarding Security in Receiver SOAP adapter
    My client wants UserNameToken security while sending synchrononus messages from SAP system to third party.
    Is anyone knows how to achieve this in AXIS framework(Receiver SOAP adapter) of PI 7.0 ?
    Thanks in advance.
    Regards
    Anku

    This is described in SAP Note 1039369 FAQ XI 3.0/7.0 Axis Adapter

  • AXIS Framework in PI 7.1

    Hi Friends,
    I went through a number of forums to understand AXIS Framework  in SOAP Adapter.
    But i am still not able to unserstand the basic concept of AXIS Framework .
    In which type of real time scenarios should we go for AXIS framework
    What are the advantages of using the AXIS framework and in which cases we should not be using the AXIS framework
    Can anybody please throw some light on this
    Regards,
    Loveena

    Hi,
    Axis stands for Apache extensible Interaction System. The framework is provided by the Apache Software Foundation. You can use Axis version 1.4 in the SOAP adapter.
    Refer these Links, you have complete idea about Axis frame work
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b092777b-ee47-2a10-17b3-c5f59380957f
    http://help.sap.com/saphelp_NW04/helpdata/en/45/a4f8bbdfdc0d36e10000000a114a6b/content.htm
    and also refer this link
    http://help.sap.com/saphelp_nwpi71/helpdata/en/69/a6fb3fea9df028e10000000a1550b0/frameset.htm
    Hope this help.
    Regards,
    Suryanarayana
    Edited by: rama suryanarayana on Aug 7, 2008 1:19 PM

  • Any one knows how to use Axis Framework in the SOAP Adapter Modules

    How to use Axis Framework in the SOAP Adapter?
    How to add custom handler modules?
    http://help.sap.com/saphelp_nw04/helpdata/en/45/a4f8bbdfdc0d36e10000000a114a6b/frameset.htm
    I went through the above link on help.sap.com. But still could not create a working example.
    I have created a wc on some 3ed party app server using apaches axis. I am trying to call that web service from XI using SOAP receiver? I need to add some security related headers to the soap message, SO I am trying to use a handler.  I want to know how to configure this handler in SOAP axis adapter module.
    Thank you
    Moni

    Ravi ,
    I am trying exactly the same. Hers is the scenario.
    ABAP Proxy --> PI (7.0) SP 12 ---> WebService.
    Since This is service is secured, means it is using OASIS web servie securyty user name token,
    I am trying to use AXIS adapter. and I want to configure HandlerBean in which I want to use apache wss4j api to add the userNameToken. I am looking for some documentation on this.
    I need to add SOAP action element too as I can not configure this one on the communication channel.
    Thanks for any inputs in this regard.
    Moni

  • Using the Axis Framework in the SOAP Adapter

    Hello experts,
    I am currenty checking how I can easily manipulate sender and receiver details and how I could get attachments into XI.
    I saw in the sap help that it is possible to use the AXIS framework from the SOAP adapter:
    http://help.sap.com/saphelp_nw04/helpdata/en/45/a39e244b030063e10000000a11466f/frameset.htm
    As usual, the documentation is of the same quality SAP usually provides.
    So my first question would be: This is a moduke to be used from the SOAP adapter right? I am asking because they also wirte about the AXIS adapter and its metadata.
    In oder to get it working, I created in the NWDStudio a library project, added my libraries (to the root directory) and deployed it via SDM. Deployment is succesful but its not working.
    SAPHelp says I should check for a MessageServlet - I ask myself how that could appear suddenly just by packaging some axis libraries...?
    I am using for that the ESA box (NW04s SP6) - I was not able to see whether there are some dependencies to the SP - are they?
    Thanks for your support!
    Helge

    Helge,
    Axis is outdated and has some issues ..use Apache Soap instead its much better and easy to use.
    http://ws.apache.org/soap/
    Regards
    Ravi

  • How to create SDA file for using AXIS Framework in the SOAP Adapter

    Hi experts,
    I have the following question:
    How I can create the SDA file aii_af_axisprovider.sda for using the AXIS Framework in the SOAP Adpater described in http://help.sap.com/saphelp_nw04/helpdata/en/45/a4f8bbdfdc0d36e10000000a114a6b/content.htm ?
    I have downloaded the files axis.jar, commons-discovery-0.2.jar, commons-logging-1.0.4.jar, commons-net-1.0.0-dev.jar and wsdl4j-1.5.1.jar. But how to create the SDA file aii_af_axisprovider.sda? Which tool I have to use for this? It is enough to compress these 5 jar-files in the sda file or need I further files with further information (meta information etc.)?
    Thanks and best regards
    Christopher

    Hi Christopher,
        Check this discussion if you have not checked already.
    Re: NTLM Authentication dosent work with XI ?
    Regards,
    Ravi

  • File upload with the SOAP Axis Framework

    Hi,
    my scenario is as follows:
    ERP --> PI --> System A (3rd party application)
    ERP sends data (IDoc) to the PI and is mapped there to a xml structure expected by A.
    IDoc --> PI --> target xml structure
    On A runs a Web service (Axis Framework) with a method uploadFile that expects one parameter (client of A) and the file for the upload has to come as attachment (call.addAttachment).
    I imported already the wsdl and can see the message uploadFile in the IR. The Axis Framework is also available already in the SOAP adapter.
    So I have
    IDoc --> PI --> target xml structure
    but want to call
    PI --> uploadFile(client) \[with the target xml structure as attachment\]
    How can I map the parameter to uploadFile and get the mapped xml structure as attachment?
    Thanks and regards
    Patrick

    Hi,
    thanks for your answer. The PayloadSwapBean could be a solution for the problem and I will try to use it.
    Here is another (simplified) version of my scenario:
    I have one source interface with three data fields
    SD1
    SD2
    SD3
    This should get mapped to a target interface with two data fields
    TD1
    TD2
    So if a source message arrives at PI a Message Mapping is called and the message gets mapped to the target structure.
    The result of this mapping should get the attachment of a Web service call.
    In a sample client for this Web service it looks like:
          Service service = new Service();
          Call call = (Call) service.createCall();
          call.setOperationName(new QName(... "uploadFile"));
          call.addAttachmentPart(...);
    The target interface of the Web service is the message uploadFile in an imported wsdl file. This interface has one data field
    WSD1
    and is independent of the other data fields.
    For filling WSD1 another mapping is necessary (or maybe not?).
    Regards
    Patrick

  • Receiver SOAP Adapter (HTTP AXIS)

    Hi Experts,
    I need to use receiver soap adapter to communicate with a WebService, actually it is a AXIS service i can see when i give the soap url in web browser.
    my question is for axis service, does it mean i have to use HTTP AXIS in the receiver channel to request the response for web service server? Can i use HTTP only without AXIS?
    when i use SoapUI to test the webservice, it works fine. But when i use receiver soap adapter with HTTP (without AXIS), it is responding with the belwo error.
    <sap:Error ...>
      <sap:Category>Application</sap:Category>
      <sap:Code area="UNKNOWN">APPLICATION_ERROR</sap:Code>
      <sap:AdditionalText>Application Fault</sap:AdditionalText>
      <sap:ApplicationFaultMessage namespace="http://sap.com/xi/XI/System/Axis/sample">host name</sap:ApplicationFaultMessage>
      <sap:Stack/>
    </sap:Error>
    Experts, please help on this, the major question is HTTP AXIS is required when target web service is an AXIS service?
    Thanks in advance.
    Regards,

    >>my question is for axis service, does it mean i have to use HTTP AXIS in the receiver channel to request the response for web service server? Can i use HTTP only without AXIS?
    You are going to consume webservice. You can use standard SOAP adapter itself to consume the webservice that is built with axis framework.
    Do you have some specific user authentication procedures like SAP Assertion Tickets, username token etc and some specific encapsulation formats (MIME, DIME, MTOM),WS Reliable Messaging  and so then you need SOAP Axis adapter. If you need to consume webservice with standard transport protocol (HTTP or HTTPS) and client authentication etc , our standard SOAP adapter is more than enough.
    Refer this link what axis soap adapter supports

  • Error in AXIS SOAP Adapter

    Hi Experts,
    Cuurently i am working on  Synchronous scenario.
    My scenario is ABAP Client Proxy> PI>AXIS SOAP ADAPTER(Webservice).
    My client requirement is to use UsernameToken security with PasswordDigest.
    I have deployed all the relevant .jar files and add the modules related to usernameToken security as per *SAP Note 1039369 FAQ XI Axis Adapter* in Receiver SOAP adapter.
    Now when  i am pushing the data from R/3 to PI, data is successfully coming to PI however when the data is going outside PI through Receiver AXIS  SOAP Adapter in RWB is showing
    *The message was successfully delivered to the application using connection SOAP_http://sap.com/xi/XI/System*
    *The message status set to DLVD*.
    Moreover when i am checking the message through SXMB_MONI i cant see the chequred flag for Request message and for response message its giving the following
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Request Message Mapping
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>XIAdapter</SAP:Category>
      <SAP:Code area="SOAP">FAULT</SAP:Code>
      <SAP:P1>http://schemas.xmlsoap.org/soap/envelope/</SAP:P1>
      <SAP:P2>Server.generalException</SAP:P2>
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText>WSDoAllReceiver: security processing failed (actions number mismatch)</SAP:AdditionalText>
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack />
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    and when i am cheking the trace of Respose message (request for message mapping ) its giving the
    <Trace level="1" type="T">Message has no payload</Trace>
      <Trace level="1" type="T">RuntimeException during appliction Java mapping com/sap/xi/tf/_MM_UrlResponse_To_CourseAccessUrlResponse_</Trace>
      <Trace level="1" type="T">com.sap.aii.utilxi.misc.api.BaseRuntimeException: Parsing an empty source. Root element expected! at com.sap.aii.mappingtool.tf3.Transformer.checkParserException(Transformer.java:187) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:151).....
    Currently SSL is not installed in my PI server.For temperory i am using HTTP instead of HTTPS.
    Please provide your valuable inputs on this.
    Regards
    Anku chopra
    Edited by: AnkuChopra on Aug 28, 2009 1:59 PM

    Hi Experts,
    In my Receiver SOAP adapter module Tab.
    As my scenario is synchronous  and i required UsernameToken with PasswordDigest security i have added following parameter value in module.(as per SAP Note 1039369 FAQ XI Axis Adapter ).
    Processing Sequence.
    Module Key
    afreq
    xireq
    wssec
    trp
    xires
    afres
    Module configuration
    ModuleKey  ParameterName   parametervalue
    xireq           handler.type         java:com.sap.aii.axis.xi.XI30OutboundHandler
    wssec         action                   UsernameToken
    wssec        handler.type         java:com.sap.aii.adapter.axis.ra.handlers.security.WSDoAllSender
    wssec       passwordType     PasswordDigest
    wssec      pwd.password     ********************
    wssec      user                       XYZ
    trp            handler.type            java:com.sap.aii.adapter.axis.ra.transport.http.HTTPSender
    trp             module.pivot          true
    xires       handler.type           java:com.sap.aii.axis.xi.XI30OutboundHandler.
    Do we need to do any other configuartion apart from above in parameter value.
    While getting response from third party i getting error as WSDoAllReceiver: security processing failed (actions number mismatch)
    Do i need to add  parameter value for WSDoAllReceiver as well as  my scenario is synchronous.
    Please help me out on this as i am not able to proceeed further because of the above errro.
    Please advice.
    regards
    Anku Chopra

  • Axis SOAP Adapter - Setting MIME headers for attachements (Handlers?)

    Hello,
    I need to know if/how it is possible to set the individual MIME headers of the parts making up a multipart/related SOAP message using only standard Axis Handlers e.g. "com.sap.aii.axis.xi.XI30DynamicConfigurationHandler" (as described in the Axis FAQ in Note 1039369).
    I know I can insert transport headers  using "com.sap.aii.axis.xi.XI30DynamicConfigurationHandler", but I can't see a way of setting a MIME header for, say, the first part (i.e. the SOAP part) or the second part (e.g. an attachement). Is this possible without writing your own Axis handler? The Axis FAQ, in "Advanced usage question 31" implies that you can set MIME Headers but only shows an example of setting the transport header.
    I am using the SOAP Adapter to send a message comprising and XML message (in the SOAP body) and a PDF document (as an attachement). The external company this is being sent to requires that we have specific values for the "Content-Id" MIME header in each part of the multipart/related document. This is why I need to understand if we can do this without writing our own Axis Handler.
    Incidentally, I have tried to write a custom Axis Handler but couldn't get PI to find it after deployment. I did this by inserting my JAR file in the "com.sap.aii.adapter.lib.sda" (as per Notes 1039369 / 1138877) and then using JSPM. After deployment, though, when I tried to start the SOAP Adapter I got the following error in the RWB: "failed to initialize: org.apache.axis.ConfigurationException: java.lang.ClassNotFoundException: com.hp.gerryaxis.GerryAxis..." (my class was called "GerryAxis" and I placed this in package "com.hp.gerryaxis"). I'm not an experienced Java programmer (my background is in ABAP), so if anyone can suggest whey I'm getting this error, I'd be very grateful (for example, could my choice of package be causing the problem?).
    Thanks for your help.

    I went ahead and wrote a simple bespoke Axis Handler. By invoking this from the standard "HandlerBean" in the module processor of my communication channel, I was able to overwrite and set new MIME headers in the Attachment Parts of my SOAP Message. I was also able to change the contents of the SOAP Envelope; for example, I found I could easily delete the SOAP Header. However, I've encountered a problem when I try and update the MIME headers of the SOAP Part i.e. the Part of the multipart/related message containing the SOAP Envelope.
    Does anyone know why I can't seem to change the MIME headers of the SOAP Part?
    The Axis API calls I used were as follows:
    (1) To update the MIME headers of attachements in my SOAP message:
    (a) Message = MessageContext.getCurrentMessage()
    (b) Iterator = Message.getAttachments()
    (c) AttachmentPart = Iterator.getNext()
    (d) AttachmentPart.setMimeHeader(name, value)
    This works.
    (2) To update the MIME headers of the SOAP (root) Part:
    (a) Message = MessageContext.getCurrentMessage()
    (b) SOAPPart = Message.getSOAPPart()
    (c) SOAPPart.setMimeHeader(name, value)
    This DOESN'Twork - the MIME headers of the SOAP Part never change.
    (3) To update the SOAP Envelope (delete the SOAP Header):
    (a) Message = MessageContext.getCurrentMessage()
    (b) SOAPPart = Message.getSOAPPart()
    (c) SOAPEnvelope = SOAPPart.getEnvelope()
    (d) SOAPHeader = SOAPEnvelope.getHeader()
    (e) SOAPHeader.removeContents()
    This works.
    I just don't understand why the call to SOAPPart.setMimeHeader() doens't work when I try and insert new MIME headers to the SOAP Part (e.g. "Content-Name") or when I try and change existing MIME headers there (e.g. "Content-ID"). I don't get any errors.
    The code of my handler is:
    @(#)GerryAxis.java       
    Set MIME headers in the SOAP and specified attachment part of a message
    package com.hp.handlers;
    import org.apache.axis.handlers.BasicHandler;
    import org.apache.axis.AxisFault;
    import org.apache.axis.attachments.AttachmentPart;
    import org.apache.axis.Message;
    import org.apache.axis.MessageContext;
    import java.util.Iterator;
    import javax.xml.soap.SOAPMessage;
    import javax.xml.soap.SOAPEnvelope;
    import javax.xml.soap.SOAPHeader;
    import javax.xml.rpc.handler.soap.SOAPMessageContext;
    The <code>GerryAxis</code> handler class sets MIME headers.
    <p>
    This handler accepts the following parameters:
    <ul>
    <li><b>name</b>: Name of header
    <li><b>value</b>: Value for header
    <li><b>attachment</b>: Attachment number
    </ul>
    public class GerryAxis extends BasicHandler {
      /* (non-Javadoc)
    @see org.apache.axis.Handler#invoke(org.apache.axis.MessageContext)
      public void invoke(MessageContext msgContext) throws AxisFault {
        int i=0;
        boolean found = false;
        AttachmentPart ap = null;
        javax.xml.soap.SOAPPart sp = null;
        StringBuffer debug = new StringBuffer();
        try {
          // The MIME header change is controlled from the parameters "name", "value", "attachment" which  are
          // set in the module processor as parameters.
          String name  = (String)getOption("name");
          String value = (String)getOption("value");
          String attachment  = (String)getOption("attachment");
          Message msg = msgContext.getCurrentMessage();
          // Get the SOAP Part (the part holding the SOAP Envelope
          sp = msg.getSOAPPart();
          if (sp == null)
              debug.append("getSOAPPart returned <null> / ");
          // Set a MIME header in the SOAP Part - THIS DOES NOT WORK - WHY?     
          sp.setMimeHeader(name,value);
          // Remove the SOAP Header for the Envelope - this works fine
          SOAPEnvelope se = sp.getEnvelope();
          SOAPHeader sh = se.getHeader();
          sh.removeContents();
          // For debugging - writes some debuggin information to a "DEBUG" MIME header in the first Attachement Part
          debug.append("name = " + name +" / ");
          debug.append("value = " + value +" / ");
          debug.append("attachment = " + attachment + " / ");
          debug.append("getMimeHeader for SOAPPart returned " + sp.getMimeHeader(name)[0] + " / ");
          debug.append("getContentId for SOAPPart returned " + sp.getContentId() + " / ");
          // Update the specified attachement's MIME header - this works fine
          Iterator it = msg.getAttachments();
          while (it.hasNext()) {
            i++;
            ap = (AttachmentPart) it.next();
            if (i == new Integer(attachment).intValue()) {
              found = true;
              break;
          if (found) {
            ap.removeMimeHeader(name);
            ap.setMimeHeader("DEBUG",debug.toString());
            ap.setMimeHeader(name,value);
          msg.saveChanges();
        catch (Exception e) {
          throw AxisFault.makeFault(e);
    Thanks
    Edited by: Gerry Deighan on Oct 3, 2010 10:27 PM

  • Configuring the Sender Axis SOAP Adapter

    Hello,
    I am trying to configure Sender Axis SOAP Adapter using PI 7.0
    The regular inbound address for SOAP messages is: http://host:port/XISOAPAdapter/MessageServlet?channel=party:service:channel
    But the inbound address for AXIS SOAP messages is:
    http://host:port/XIAxisAdapter/MessageServlet?parameters
    parameters ::= token ( u2018&u2019 token )*
    token ::= name u2018=u2019 value
    name ::= fieldname
    value ::= fieldvalue
    fileldname ::= u2018senderPartyu2019 | u2018senderServiceu2019 | u2018receiverPartyu2019 | u2018receiverServiceu2019 |
    u2018interfaceu2019 | u2018interfaceNamespaceu2019 | u2018messageIdu2019 | u2018queueNameu2019
    fieldvalue ::= urlencoded value
    See this link: http://help.sap.com/saphelp_nw70/helpdata/en/45/a4f8bbdfdc0d36e10000000a114a6b/frameset.htm
    Can someone give me an example of such URL?
    Regards,
    Gigi.

    Hi,
    Re: SOAP (Axis) Adapter
    Thanks
    Vikranth

Maybe you are looking for