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,
NehaHi !
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,
loveenaan 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,
LoveenaHi !
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
PatrickHi,
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
AnkuThis 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,
LoveenaHi,
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
MoniRavi ,
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!
HelgeHelge,
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
ChristopherHi 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
PatrickHi,
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 -
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 PMHi 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
-
Report on files in a directory
I would like to report on the directory content in my file system - I search for a project number and having it I show the report on the files that are stored on my server in a directory named by project number. Any ideas on how to acomplish this by
-
Error while consuming RFC in BPM
Hi We are trying to consume an RFC as an automated task in the BPM model (NWDS, CE 7.2) We have followed all steps and configurations as per the document "How To... Use SOA Configuration to Call RFCs and Web Services from within SAP NetWeaver BPM" Us
-
My iCal won't go online and returns the error message: "The server responded with "500" to operation CalDAVAccountRefreshQueueableOperation."
-
Workflow not trigerring for Clock-in/clock new entries or corrections
Dear All, I am using the workflow ws12300111 template for clock-in/clock out for approval to manager. Is this appropriate one or anything else is available, whenever i raise request for the clock-in/clock out change in ess a new request is getting ge
-
How to set "choose template" as default when open pages?
Hi, I am new to pages/numbers/keynote. My pages starts with the document browser and not with the "choose template" menu. However, on my second account this is not the case, here it starts with "choose template". Anyone knows how I can change this? T