on 2007 Mar 27 8:41 PM
Hi all.
Im posting a Web Services using HTTP adapter in receiver CC.
In SXI_Monitor get next error:
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
....<soap:Body>
.........<soap:Fault>
................<faultcode>soap:Client</faultcode>
................<faultstring>Unable to handle request without a valid action parameter. Please supply a valid soap action.</faultstring>
........ <detail /> </soap:Fault> </soap:Body> </soap:Envelope>
<SAP:Stack>Http server code 401 reason Unauthorized explanation <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML><HEAD><TITLE>You are not authorized to view this page</TITLE> <META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252"> <STYLE type="text/</SAP:Stack>
what sould i do??
Thanks
RP
Message was edited by:
Rodrigo Pertierra
Apply in the part "header fields" a new entry:
Name: SOAPAction Value: <your SOAP action>
Stefan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
HI,
SOAPAction
see the below link
http://help.sap.com/saphelp_nw2004s/helpdata/en/29/5bd93f130f9215e10000000a155106/content.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/69/a6fb3fea9df028e10000000a1550b0/content.htm
Regards
Chilla
<i>reward points if it is helpful..</i>
Stefan.
Im putting
Header Fields:
-
SOAPAction http://localhost/WsCustomers/CustomerInsert.
but it doesn't work
Im using a WSDL
Rgds
RP
Message was edited by:
Rodrigo Pertierra
A SOAP message consist of a SOAP envelope with header and body.
Inside the XI you see only the body like this:
<?xml version="1.0" encoding="UTF-8" ?>
<m:doGoogleSearch xmlns:m="urn:GoogleSearch">
<key>0PYGhDZQFHIZjwnOEs53Fz9/ns6BVGq6</key>
<q>Shakira</q>
<start />
<maxResults>10</maxResults>
<filter>1</filter>
<restrict>String</restrict>
<safeSearch>1</safeSearch>
<lr>String</lr>
<ie>String</ie>
<oe>String</oe>
</m:doGoogleSearch>
The SOAP adapter adds the SOAP envelope to complete the SOAP message:
<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<m:doGoogleSearch xmlns:m="urn:GoogleSearch">
<key>0PYGhDZQFHIZjwnOEs53Fz9/ns6BVGq6</key>
<q>Shakira</q>
<start>0</start>
<maxResults>10</maxResults>
<filter>1</filter>
<restrict>String</restrict>
<safeSearch>1</safeSearch>
<lr>String</lr>
<ie>String</ie>
<oe>String</oe>
</m:doGoogleSearch>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
The HTTP adapter does not provide this feature, so you to care about this by yourself.
Check this page:
http://www.w3schools.com/soap/
To create the SOAP envelope you can an XSLT mapping:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="/">
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Header />
<SOAP:Body>
<xsl:copy-of select="*" />
</SOAP:Body>
</SOAP:Envelope>
</xsl:template>
</xsl:stylesheet>
If you have a mapping, then you apply the XSLT as second mapping step.
Hope that helps
Stefan
Message was edited by:
Stefan Grube
Message was edited by:
Stefan Grube
Hi,
Another option is to add this soap envelope by having a java mapping step instead of XSLT mapiping...
Let me ask you a question, which others have previously added...what is the need for you to use the HTTP adapter over the SOAP adapter ? SOAP adapter does all these jobs for you ...right ?
Thanks,
Renjith
my boss solicited me this change.
I dont know specifically why, but i must do it.
you know how it is.
Is posible define in the EPILOG the Soap envelope??
in this way, what i must do??
i never use an XSLT mapping, i dont have Idea how to do it, how to create, how to import it to XI, etc etc.
Sorry!
Rgds
RP
Message was edited by:
Rodrigo Pertierra
Message was edited by:
Rodrigo Pertierra
> my boss solicited me this change.
> I dont know specifically why, but i must do it. you know how it is.
Why you don't tell him, that this does not work?
The SOAP adapter is made for calling a web service, the HTTP not.
> Is posible define in the EPILOG the Soap envelope??
> in this way, what i must do??
This won't work, as the message has a declaration:
<?xml version="1.0" encoding="UTF-8" ?>
When you add the SOAP envelope as prolog/envelope combination, the declaration is within the XML message. This leads to a parsing error.
> i never use an XSLT mapping, i dont have Idea how to
> do it, how to create, how to import it to XI, etc
Create the XSLT with a text editor (notepad will be sufficient). Call the file anyhing.xsl Open it with an Internet browser for a simple syntax check.
Use Winzip to create a zip file with the XSLT. In IR create an object Mapping -> imported archives, upload the zip file there. You should see the xslt program after upload here.
Create an interface mapping (when the interfaces that you use for routing are not in IR available, just type the names and namespaces manually) source interface and target interface can have the same name. Apply the xslt mapping here.
Activate everything. Go to ID, assign the mapping to the interface determination.
Here the link to online help:
http://help.sap.com/saphelp_nw04/helpdata/en/4c/b2ad3de2d76b3be10000000a114084/frameset.htm
Hope that helps,
Stefan
HI,
In general if the error is 401 , then some thing related to User Authentication error
see as per the below link
/people/krishna.moorthyp/blog/2006/07/23/http-errors-in-xi
Check XIAPPLUSER is having this Role -SAP_XI_APPL_SERV_USER
If the error is in XI Adapter, then your port entry should J2EE port 5<System no>
If the error is in Adapter Engine
then have a look into SAP note- 821026, Delete the Adapter Engine cache in transaction SXI_CACHE Goto --> Cache.
May be wrong password for user XIISUSER
May be wrong password for user XIAFUSER
for this Check the Exchange Profile and transaction SU01, try to reset the password -Restart the J2EE Engine to activate changes in the Exchange Profile After doing this, you can restart the message
Regards
Chilla
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Why are you calling a webvservice using the HTTP adapter?
Why not use the SOAP adapter?
Also as youa re using the HTTP adapter, you would need to create the emtire SOAP envelope as the output of your mapping. Have you done this?
Regards
Bhavesh
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
hi Bhavesh.
i havent made it. but is there another way to use Receiver HTTP adapter without change my mapping? set any parameter in receiver HTTP and define the SOAP Action?
previously i was using SOAP adpater a there no errors, but my boss proposed if its possible replace SOAP by HTTP adapter.
Regards
RP.
Message was edited by:
Rodrigo Pertierra
Hi,
Is it possible. not sure see the below link
http://help.sap.com/saphelp_nw2004s/helpdata/en/43/64dbb0af9f30b4e10000000a11466f/content.htm
Regards
Chilla
Hi,
inside receiver SOAP adapter you have an option to put : soap action
did you try filling it ?
Regards,
michal
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Rodrigo,
The error "Http server code 401 reason Unauthorized explanation" means that the destination system is not allowing you to send your message. They may require that you provide a client certificate or username/password.
Cheers,
Joe
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
70 | |
10 | |
10 | |
7 | |
6 | |
6 | |
6 | |
5 | |
5 | |
5 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.