Newline problem with soap
I'm having these weird problems with newlines. I'm sending \n in a message because I have a multi lined message i want parsed. Axis is receiving the message and throwing exceptions. I printed out the line it's parsing and it's giving this error that it can't parse:
'2.5
PID'
The parser is not supposed to parse past the \n but it seems to be trying to. I've tested this without webservices and it works fine, adding webservices into the equation gives me these errors.
Additional info: The problem is the same in the entire environment here (PI DEV, QAS and PRD) and on another PI machine.
So I doubt very much if it's cache related.
Edit: This is the 'application error':
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- XML Validation Inbound Channel Response
-->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
<SAP:Category>Application</SAP:Category>
<SAP:Code area="UNKNOWN">APPLICATION_ERROR</SAP:Code>
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText>application fault</SAP:AdditionalText>
<SAP:ApplicationFaultMessage namespace="http://xml.apache.org/axis/">hostname</SAP:ApplicationFaultMessage>
<SAP:Stack />
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
Edited by: Frederik-Jan Roose on Dec 7, 2009 11:11 AM
Similar Messages
-
Another problem with SOAP sender
I have another problem with SOAP scenario in a different environment (PI 7.0) from my earlier post.
Scenario:
Soap Sender -> PI -> Soap Receiver
Following steps from GoogleSearch SOAP scenario in the SAP How-to Guide for SAP NetWeaver '04 entitled: "How To... Use the XI 3.0 SOAP Adapter" version 1.00 - March 2006.
I have loaded in the api.google.com/GoogleSearch.wsdl file as an External definition and created the SOAP receiver as described in the How-to guide. It takes a doGoogleSearch as input and sends back a doGoogleSearchResponse (Sync Call).
Note that the GoogleSearch.wsdl contains a complex type ResultElementArray that refers to ResultElement\[\], and a DirectoryCategoryArray that refers to DirectoryCategory\[\]. The ResultElement and DirectoryCategory types are defined in the GoogleSearch.wsdl file.
Problem One:
The generated WSDL for the SOAP sender contains the ResultElementArray and DirectoryCategoryArray types but it DOES NOT contain the required ResultElement and DirectoryCategory types. XML Spy complains that this WSDL is not valid because the type ResultElement\[\] is not defined.
Problem Two:
I generate a SOAP message in XML Spy, provide values for the doGoogleSearch fields, and send. In SXMB_MONI, the SOAP sender payload contains only the <key> value from the doGoogleSearch message body, i.e. <part name="key" type="xsd:string" />
The other doGoogleSearch fields seem to be missing, i.e.
<part name="q" type="xsd:string" />
<part name="start" type="xsd:int" />
<part name="maxResults" type="xsd:int" />
<part name="filter" type="xsd:boolean" />
<part name="restrict" type="xsd:string" />
<part name="safeSearch" type="xsd:boolean" />
<part name="lr" type="xsd:string" />
<part name="ie" type="xsd:string" />
<part name="oe" type="xsd:string" />
Does anyone know why:
(1) PI/XI seems to leave out the ResultElement and DirectoryCategory types from the SOAP sender service WSDL file?
(2) The doGoogleSearch message seen in SXMB_MONI contains only the first <key> field, and not the other fields?
Thanks for any help with this.I have another problem with SOAP scenario in a different environment (PI 7.0) from my earlier post.
Scenario:
Soap Sender -> PI -> Soap Receiver
Following steps from GoogleSearch SOAP scenario in the SAP How-to Guide for SAP NetWeaver '04 entitled: "How To... Use the XI 3.0 SOAP Adapter" version 1.00 - March 2006.
I have loaded in the api.google.com/GoogleSearch.wsdl file as an External definition and created the SOAP receiver as described in the How-to guide. It takes a doGoogleSearch as input and sends back a doGoogleSearchResponse (Sync Call).
Note that the GoogleSearch.wsdl contains a complex type ResultElementArray that refers to ResultElement\[\], and a DirectoryCategoryArray that refers to DirectoryCategory\[\]. The ResultElement and DirectoryCategory types are defined in the GoogleSearch.wsdl file.
Problem One:
The generated WSDL for the SOAP sender contains the ResultElementArray and DirectoryCategoryArray types but it DOES NOT contain the required ResultElement and DirectoryCategory types. XML Spy complains that this WSDL is not valid because the type ResultElement\[\] is not defined.
Problem Two:
I generate a SOAP message in XML Spy, provide values for the doGoogleSearch fields, and send. In SXMB_MONI, the SOAP sender payload contains only the <key> value from the doGoogleSearch message body, i.e. <part name="key" type="xsd:string" />
The other doGoogleSearch fields seem to be missing, i.e.
<part name="q" type="xsd:string" />
<part name="start" type="xsd:int" />
<part name="maxResults" type="xsd:int" />
<part name="filter" type="xsd:boolean" />
<part name="restrict" type="xsd:string" />
<part name="safeSearch" type="xsd:boolean" />
<part name="lr" type="xsd:string" />
<part name="ie" type="xsd:string" />
<part name="oe" type="xsd:string" />
Does anyone know why:
(1) PI/XI seems to leave out the ResultElement and DirectoryCategory types from the SOAP sender service WSDL file?
(2) The doGoogleSearch message seen in SXMB_MONI contains only the first <key> field, and not the other fields?
Thanks for any help with this. -
XSLT Problem with soap namespace
Hi there,
I have a problem transforming an XML doc with soap elements, using XSLT (Xalan).
Here's the input:
<?xml version = "1.0" encoding = "ISO-8859-1"?>
<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/" xmlns="http://www.ean.nl">
<testthis>123456</testthis>
</soap:Envelope>and here's the XSL:
<?xml version="1.0"?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" exclude-result-prefixes="soap">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="soap:Envelope">
<Orders>
<H01>
<xsl:value-of select="testthis"/>
</H01>
</Orders>
</xsl:template>
</xsl:transform>I expect to get something like:
<?xml version="1.0" encoding="UTF-8"?>
<Orders>
<H01>123456<H01>
<Orders>But instead I get:
<?xml version="1.0" encoding="UTF-8"?>
<Orders>
<H01/>
</Orders>I've tried a lot of things and I'm probably overseeing something stupid, but I'm stuck.
It seems as if anything without soap: namespace cannot be processed by my XSL (when I add it in the input XML and XSL it works).
Any help would be greatly appreciated.
Greetings,
ErikYes, I found it!
The following XSL for the same XML doc works!
<?xml version="1.0"?>
<xsl:transform xmlns:ean="http://www.ean.nl" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" exclude-result-prefixes="soap">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="soap:Envelope">
<Orders>
<H01>
<xsl:value-of select="ean:testthis"/>
</H01>
</Orders>
</xsl:template>
</xsl:transform>Thanks, you pointed me in the right direction :-)
Erik -
Hi,
I have a SOAP servlet, but It is the fist SOAPServlet as I use.
I think that the vsd that developper of SOAP servlet provide is ok.
But, I do not understand which is the XML that I could provide to it.
It is posible that I have a problem with XML, SCHEMA and SOAP.
Could you help me , I attach the VSD, but I need a tool or a sample file in order to call my SOAP servlet.
<xsd:schema xmlns:xsd="http://schemas.xmlsoap.org/soap/encoding">
<xsd:complexType name="STD_TRN1_I_PARM_V_TYPE">
<xsd:sequence>
<xsd:element name="COD_TX_DI">
<xsd:simpleType base="xsd:string">
<maxLength value="00004"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="ID_INTERNO_TERM_TN">
<xsd:simpleType base="xsd:string">
<maxLength value="00008"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="ID_EMPL_AUT">
<xsd:simpleType base="xsd:string">
<maxLength value="00008"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="NUM_SEC">
<xsd:simpleType base="xsd:decimal">
<totalDigits value="00007"/>
<fractionDigits value="00"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="COD_TX">
<xsd:simpleType base="xsd:string">
<maxLength value="00008"/>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TR_CONS_SALDOS_VISTA_EVT_Y_TYPE">
<xsd:sequence>
<xsd:element name="COD_CENT_UO">
<xsd:simpleType base="xsd:string">
<maxLength value="00004"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="NUM_SEC_AC">
<xsd:simpleType base="xsd:decimal">
<totalDigits value="00010"/>
<fractionDigits value="00"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="COD_NRBE_EN">
<xsd:simpleType base="xsd:string">
<maxLength value="00004"/>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="STD_TRN1_O_PARM_V_TYPE">
<xsd:sequence>
<xsd:element name="HORA_OPRCN" type="xsd:time"/>
<xsd:element name="FECHA_OPRCN" type="xsd:date"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PSV_DISPO_V_TYPE">
<xsd:sequence>
<xsd:element name="STD_DEC_15Y2">
<xsd:simpleType base="xsd:decimal">
<totalDigits value="00015"/>
<fractionDigits value="02"/>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PSV_SDO_CONTABLE_V_TYPE">
<xsd:sequence>
<xsd:element name="IMP_SDO">
<xsd:simpleType base="xsd:decimal">
<totalDigits value="00015"/>
<fractionDigits value="02"/>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PSV_SDO_RETEN_V_TYPE">
<xsd:sequence>
<xsd:element name="IMP_SDO">
<xsd:simpleType base="xsd:decimal">
<totalDigits value="00015"/>
<fractionDigits value="02"/>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PSV_SDO_AUT_V_TYPE">
<xsd:sequence>
<xsd:element name="IMP_SDO">
<xsd:simpleType base="xsd:decimal">
<totalDigits value="00015"/>
<fractionDigits value="02"/>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PSV_SDO_INCID_V_TYPE">
<xsd:sequence>
<xsd:element name="IMP_SDO">
<xsd:simpleType base="xsd:decimal">
<totalDigits value="00015"/>
<fractionDigits value="02"/>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PSV_BLOQUEOS_V_TYPE">
<xsd:sequence>
<xsd:element name="STD_CHAR_01">
<xsd:simpleType base="xsd:string">
<maxLength value="00001"/>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PSV_SDO_CONECT_V_TYPE">
<xsd:sequence>
<xsd:element name="IMP_SDO">
<xsd:simpleType base="xsd:decimal">
<totalDigits value="00015"/>
<fractionDigits value="02"/>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="COD_IDIOMA_V_TYPE">
<xsd:sequence>
<xsd:element name="COD_IDIOMA">
<xsd:simpleType base="xsd:string">
<maxLength value="00002"/>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PSV_ANOTACIONES_V_TYPE">
<xsd:sequence>
<xsd:element name="STD_CHAR_01">
<xsd:simpleType base="xsd:string">
<maxLength value="00001"/>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TR_CONS_SALDOS_VISTA_EVT_Z_TYPE">
<xsd:sequence>
<xsd:element name="COD_NUMRCO_MONEDA">
<xsd:simpleType base="xsd:string">
<maxLength value="00003"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="PSV_DISPO_V" type="PSV_DISPO_V_TYPE"/>
<xsd:element name="PSV_SDO_CONTABLE_V" type="PSV_SDO_CONTABLE_V_TYPE"/>
<xsd:element name="PSV_SDO_RETEN_V" type="PSV_SDO_RETEN_V_TYPE"/>
<xsd:element name="PSV_SDO_AUT_V" type="PSV_SDO_AUT_V_TYPE"/>
<xsd:element name="PSV_SDO_INCID_V" type="PSV_SDO_INCID_V_TYPE"/>
<xsd:element name="PSV_BLOQUEOS_V" type="PSV_BLOQUEOS_V_TYPE"/>
<xsd:element name="PSV_SDO_CONECT_V" type="PSV_SDO_CONECT_V_TYPE"/>
<xsd:element name="COD_CSB_OF">
<xsd:simpleType base="xsd:string">
<maxLength value="00004"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="NOMB_50">
<xsd:simpleType base="xsd:string">
<maxLength value="00050"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="COD_INTERNO_UO">
<xsd:simpleType base="xsd:string">
<maxLength value="00004"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="COD_IDIOMA_V" type="COD_IDIOMA_V_TYPE"/>
<xsd:element name="PSV_ANOTACIONES_V" type="PSV_ANOTACIONES_V_TYPE"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="STD_TRN1_MSJ_PARM_V_TYPE">
<xsd:sequence>
<xsd:element name="TEXT_ARG1">
<xsd:simpleType base="xsd:string">
<maxLength value="00018"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="TEXT_CODE" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TR_CONS_SALDOS_VISTA_TRN1">
<xsd:complexType name="TR_CONS_SALDOS_VISTA_TRN1_O_TYPE">
<xsd:sequence>
<xsd:element name="RTRN_CD" type="xsd:int"/>
<xsd:element name="STD_TRN1_O_PARM_V" type="STD_TRN1_O_PARM_V_TYPE"/>
<xsd:element name="TR_CONS_SALDOS_VISTA_EVT_Z" type="TR_CONS_SALDOS_VISTA_EVT_Z_TYPE"/>
<xsd:complexType name="STD_TRN1_MSJ_PARM_V_OCCURS">
<xsd:element name="STD_TRN1_MSJ_PARM_V" type="STD_TRN1_MSJ_PARM_V_TYPE" maxOccurs="000005"/>
</xsd:complexType>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TR_CONS_SALDOS_VISTA_TRN1_I_TYPE">
<xsd:sequence>
<xsd:element name="STD_TRN1_I_PARM_V" type="STD_TRN1_I_PARM_V_TYPE"/>
<xsd:element name="TR_CONS_SALDOS_VISTA_EVT_Y" type="TR_CONS_SALDOS_VISTA_EVT_Y_TYPE"/>
</xsd:sequence>
</xsd:complexType>
</xsd:complexType>
</xsd:schema>Thanks youHi,
I have a SOAP servlet, but It is the fist SOAPServlet as I use.
I think that the vsd that developper of SOAP servlet provide is ok.
But, I do not understand which is the XML that I could provide to it.
It is posible that I have a problem with XML, SCHEMA and SOAP.
Could you help me , I attach the VSD, but I need a tool or a sample file in order to call my SOAP servlet.
<xsd:schema xmlns:xsd="http://schemas.xmlsoap.org/soap/encoding">
<xsd:complexType name="STD_TRN1_I_PARM_V_TYPE">
<xsd:sequence>
<xsd:element name="COD_TX_DI">
<xsd:simpleType base="xsd:string">
<maxLength value="00004"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="ID_INTERNO_TERM_TN">
<xsd:simpleType base="xsd:string">
<maxLength value="00008"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="ID_EMPL_AUT">
<xsd:simpleType base="xsd:string">
<maxLength value="00008"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="NUM_SEC">
<xsd:simpleType base="xsd:decimal">
<totalDigits value="00007"/>
<fractionDigits value="00"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="COD_TX">
<xsd:simpleType base="xsd:string">
<maxLength value="00008"/>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TR_CONS_SALDOS_VISTA_EVT_Y_TYPE">
<xsd:sequence>
<xsd:element name="COD_CENT_UO">
<xsd:simpleType base="xsd:string">
<maxLength value="00004"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="NUM_SEC_AC">
<xsd:simpleType base="xsd:decimal">
<totalDigits value="00010"/>
<fractionDigits value="00"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="COD_NRBE_EN">
<xsd:simpleType base="xsd:string">
<maxLength value="00004"/>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="STD_TRN1_O_PARM_V_TYPE">
<xsd:sequence>
<xsd:element name="HORA_OPRCN" type="xsd:time"/>
<xsd:element name="FECHA_OPRCN" type="xsd:date"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PSV_DISPO_V_TYPE">
<xsd:sequence>
<xsd:element name="STD_DEC_15Y2">
<xsd:simpleType base="xsd:decimal">
<totalDigits value="00015"/>
<fractionDigits value="02"/>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PSV_SDO_CONTABLE_V_TYPE">
<xsd:sequence>
<xsd:element name="IMP_SDO">
<xsd:simpleType base="xsd:decimal">
<totalDigits value="00015"/>
<fractionDigits value="02"/>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PSV_SDO_RETEN_V_TYPE">
<xsd:sequence>
<xsd:element name="IMP_SDO">
<xsd:simpleType base="xsd:decimal">
<totalDigits value="00015"/>
<fractionDigits value="02"/>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PSV_SDO_AUT_V_TYPE">
<xsd:sequence>
<xsd:element name="IMP_SDO">
<xsd:simpleType base="xsd:decimal">
<totalDigits value="00015"/>
<fractionDigits value="02"/>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PSV_SDO_INCID_V_TYPE">
<xsd:sequence>
<xsd:element name="IMP_SDO">
<xsd:simpleType base="xsd:decimal">
<totalDigits value="00015"/>
<fractionDigits value="02"/>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PSV_BLOQUEOS_V_TYPE">
<xsd:sequence>
<xsd:element name="STD_CHAR_01">
<xsd:simpleType base="xsd:string">
<maxLength value="00001"/>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PSV_SDO_CONECT_V_TYPE">
<xsd:sequence>
<xsd:element name="IMP_SDO">
<xsd:simpleType base="xsd:decimal">
<totalDigits value="00015"/>
<fractionDigits value="02"/>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="COD_IDIOMA_V_TYPE">
<xsd:sequence>
<xsd:element name="COD_IDIOMA">
<xsd:simpleType base="xsd:string">
<maxLength value="00002"/>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PSV_ANOTACIONES_V_TYPE">
<xsd:sequence>
<xsd:element name="STD_CHAR_01">
<xsd:simpleType base="xsd:string">
<maxLength value="00001"/>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TR_CONS_SALDOS_VISTA_EVT_Z_TYPE">
<xsd:sequence>
<xsd:element name="COD_NUMRCO_MONEDA">
<xsd:simpleType base="xsd:string">
<maxLength value="00003"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="PSV_DISPO_V" type="PSV_DISPO_V_TYPE"/>
<xsd:element name="PSV_SDO_CONTABLE_V" type="PSV_SDO_CONTABLE_V_TYPE"/>
<xsd:element name="PSV_SDO_RETEN_V" type="PSV_SDO_RETEN_V_TYPE"/>
<xsd:element name="PSV_SDO_AUT_V" type="PSV_SDO_AUT_V_TYPE"/>
<xsd:element name="PSV_SDO_INCID_V" type="PSV_SDO_INCID_V_TYPE"/>
<xsd:element name="PSV_BLOQUEOS_V" type="PSV_BLOQUEOS_V_TYPE"/>
<xsd:element name="PSV_SDO_CONECT_V" type="PSV_SDO_CONECT_V_TYPE"/>
<xsd:element name="COD_CSB_OF">
<xsd:simpleType base="xsd:string">
<maxLength value="00004"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="NOMB_50">
<xsd:simpleType base="xsd:string">
<maxLength value="00050"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="COD_INTERNO_UO">
<xsd:simpleType base="xsd:string">
<maxLength value="00004"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="COD_IDIOMA_V" type="COD_IDIOMA_V_TYPE"/>
<xsd:element name="PSV_ANOTACIONES_V" type="PSV_ANOTACIONES_V_TYPE"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="STD_TRN1_MSJ_PARM_V_TYPE">
<xsd:sequence>
<xsd:element name="TEXT_ARG1">
<xsd:simpleType base="xsd:string">
<maxLength value="00018"/>
</xsd:simpleType>
</xsd:element>
<xsd:element name="TEXT_CODE" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TR_CONS_SALDOS_VISTA_TRN1">
<xsd:complexType name="TR_CONS_SALDOS_VISTA_TRN1_O_TYPE">
<xsd:sequence>
<xsd:element name="RTRN_CD" type="xsd:int"/>
<xsd:element name="STD_TRN1_O_PARM_V" type="STD_TRN1_O_PARM_V_TYPE"/>
<xsd:element name="TR_CONS_SALDOS_VISTA_EVT_Z" type="TR_CONS_SALDOS_VISTA_EVT_Z_TYPE"/>
<xsd:complexType name="STD_TRN1_MSJ_PARM_V_OCCURS">
<xsd:element name="STD_TRN1_MSJ_PARM_V" type="STD_TRN1_MSJ_PARM_V_TYPE" maxOccurs="000005"/>
</xsd:complexType>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TR_CONS_SALDOS_VISTA_TRN1_I_TYPE">
<xsd:sequence>
<xsd:element name="STD_TRN1_I_PARM_V" type="STD_TRN1_I_PARM_V_TYPE"/>
<xsd:element name="TR_CONS_SALDOS_VISTA_EVT_Y" type="TR_CONS_SALDOS_VISTA_EVT_Y_TYPE"/>
</xsd:sequence>
</xsd:complexType>
</xsd:complexType>
</xsd:schema>Thanks you -
WLS 7.0 sp2 - Servlet Problems with SOAP messages
I'm using Weblogic 7.0 SP2 and trying to create a Servlet to receive SOAP wrapped
XML messages. I'm getting the following error. Is this a problem with WLS7.0sp2's
support of JAXM? The System.out.println's indicate I have successfully received
the incoming SOAP request and then successfully formatted the SOAP response, but
upon returning saving the response it appears to blow up. Does anyone have any
suggestions?
I need to do the following in a servlet:
- receive an incoming SOAP request with an embedded XML message
- perform some processing
- return a SOAP response with an embedded XML message
Should I be using JAXM? Or can I do this same task easily with JAX-RPC?
<Feb 24, 2004 4:10:42 PM AST> <Error> <HTTP> <101017> <[ServletContext(id=260434
7,name=isd.war,context-path=)] Root cause of ServletException
java.lang.Error: NYI
at weblogic.webservice.core.soap.SOAPMessageImpl.saveRequired(SOAPMessag
eImpl.java:360)
at javax.xml.messaging.JAXMServlet.doPost(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
(ServletStubImpl.java:1058)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:401)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:306)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
n.run(WebAppServletContext.java:5445)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServic
eManager.java:780)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
rvletContext.java:3105)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
pl.java:2588)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)
>
I've stripped the code down so that all it does is verifies the incoming SOAP/XML
request and creates a hard-coded response... be gentle... I'm a novice at this
import javax.xml.soap.*;
import javax.servlet.*;
import javax.servlet.http.*;
// import javax.xml.transform.*;
import java.util.*;
import java.io.*;
public class RegisterServlet extends HttpServlet
static MessageFactory fac = null;
static
try
fac = MessageFactory.newInstance();
catch (Exception ex)
ex.printStackTrace();
public void init(ServletConfig servletConfig) throws ServletException
super.init(servletConfig);
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException,
IOException
try
System.out.println("** Note: doPost() Entering req = " + req);
// Get all the headers from the HTTP request
MimeHeaders headers = getHeaders(req);
// Get the body of the HTTP request
InputStream is = req.getInputStream();
// Now internalize the contents of a HTTP request
// and create a SOAPMessage
SOAPMessage msg = fac.createMessage(headers, is);
System.out.println("** Note: doPost() Step A");
SOAPMessage reply = null;
reply = onMessage(msg);
System.out.println("** Note: doPost() Step B reply = " + reply);
if (reply != null)
* Need to call saveChanges because we're
* going to use the MimeHeaders to set HTTP
* response information. These MimeHeaders
* are generated as part of the save.
if (reply.saveRequired())
System.out.println("** Note: doPost() Step C reply.saveRequired()");
reply.saveChanges();
resp.setStatus(HttpServletResponse.SC_OK);
putHeaders(reply.getMimeHeaders(), resp);
// Write out the message on the response stream
OutputStream os = resp.getOutputStream();
System.out.println("** Note: doPost() Step D os = " + os);
reply.writeTo(os);
os.flush();
else
resp.setStatus(HttpServletResponse.SC_NO_CONTENT);
catch (Exception ex)
throw new ServletException("** Error: SAAJ POST failed: " + ex.getMessage());
static MimeHeaders getHeaders(HttpServletRequest req)
Enumeration enum = req.getHeaderNames();
MimeHeaders headers = new MimeHeaders();
while (enum.hasMoreElements())
String headerName = (String)enum.nextElement();
String headerValue = req.getHeader(headerName);
StringTokenizer values =
new StringTokenizer(headerValue, ",");
while (values.hasMoreTokens())
headers.addHeader(headerName,
values.nextToken().trim());
return headers;
static void putHeaders(MimeHeaders headers, HttpServletResponse res)
Iterator it = headers.getAllHeaders();
while (it.hasNext())
MimeHeader header = (MimeHeader)it.next();
String[] values = headers.getHeader(header.getName());
if (values.length == 1)
res.setHeader(header.getName(),
header.getValue());
else
StringBuffer concat = new StringBuffer();
int i = 0;
while (i < values.length)
if (i != 0)
concat.append(',');
concat.append(values[i++]);
res.setHeader(header.getName(), concat.toString());
// This is the application code for handling the message.
public SOAPMessage onMessage(SOAPMessage message)
SOAPMessage replymsg = null;
try
System.out.println("** Note: OnMessage() Entering msg = " + message);
//Extract the ComputerPart element from request message and add to reply SOAP
message.
SOAPEnvelope reqse = message.getSOAPPart().getEnvelope();
SOAPBody reqsb = reqse.getBody();
//System.out.println("** Note: OnMessage() Step B");
System.out.println("** Note: OnMessage () Step A Soap Request Message Body = "
+ reqsb);
//Create a reply mesage from the msgFactory of JAXMServlet
System.out.println("** Note: OnMessage () Step B");
replymsg = fac.createMessage();
SOAPPart sp = replymsg.getSOAPPart();
SOAPEnvelope se = sp.getEnvelope();
SOAPBody sb = se.getBody();
System.out.println("** Note: OnMessage () Step C Soap Reply Before Message Body
= " + sb);
se.getBody().addBodyElement(se.createName("RegisterResponse")).addChildElement(se.createName("ErrorCode")).addTextNode("000");
System.out.println("** Note: OnMessage () Step D Soap Reply After Message Body
= " + sb);
replymsg.saveChanges();
System.out.println("** Note: OnMessage() Exiting replymsg = " + (replymsg));
catch (Exception ex)
ex.printStackTrace();
return replymsg;
Michael,
I got the same error on WLS8.1/Win2K professional and apache FOP (old version).
After digging into the WLS code and FOP(old version). i found the conflict happens
on
the "org.xml.sax.parser" system property. In WLS code, they hard coded like the
following when startup weblogic server:
System.setProperty("org.xml.sax.parser", "weblogic.xml.jaxp.RegistryParser");
But the FOP code try to use the "org.xml.sax.parser" system property to find the
sax parser then conlict happens.
Here is the response from BEA support :
"I consulted with our developers regarding the question of whether we can change
the hard-coded value for the java system property: org.xml.sax.parser by using
a configuration parameter and I found that unfortunately there is no specific
setting to change the value. As you had mentioned in your note the org.xml.sax.parser
system property can be changed programmatically in your application code."
I solve my problem by using newer apache FOP (it never use the system property:org.xml.sax.parser
any more) and XML Registy for WLS8.1.
Good luck.
David Liu
Point2 Technologies Inc.
"p_michael" <[email protected]> wrote:
>
Help.
When we migrated from WLS 6.1 to WLS 7.0 SP2 when encountered a problem
with XML
parsing that did not previously exist.
We get the error "weblogic.xml.jaxp.RegistryParser is not a SAX driver".
What does this mean? And, what should we do about it.
p_michael -
Problem with SOAP receiver adapter? Please help!
Hi experts
I have the following scenario:
SAP R/3 -ABAP Proxy>XI--->SOAP --webservice
As you can see, I am sending data from R/3 system to XI via ABAP proxy. XI then sends data or calls a webservice via SOAP adapter.
When I test this scenario I am getting a error in the sxmb_moni that is,
"com.sap.aii.af.ra.ms.api.DeliveryException: TEXT/HTML; HTTP 504 Gateway Time-out"
I have checked the webservice url and it is working fine.
Can somebody tell me why am I getting this error message? How do I resolve this?
Thanks
GopalHi,
Can you please check the settings in Soap Adapter with Module Adapter setting with ModuleTranformBean parameters? There may be some problem. use HTTP Adapter and the message type 'HttpPostIn' to send as HTTP Post.
Also
There is the note 450226 gives an overview over error codes
Probably below solution may help you.........
As an administrator on your portal go to:
System Configuration > Service Configuration >applications
Under: com.sap.portal.ivs.httpservice > Services > Proxy
If any proxy settings are configured you may end up with the problem, so you need to set the "nonProxyHosts" to include the trex host.
regards
Aashish Sinha
PS : reward points if helpful -
Problem with SOAP Adapter receiver not receiving the proper string
Hi friends
I have a very simple scenario as follows using SOAP Syncronous Call
SENDING SCENARIO
================
ExternalClient --> SOAP ADAPTER --> XI -> RFC ADAPTER --> ZBAPI
RECEIVING SCENARIO
==================
ZBAPI --> RFC ADAPTER --> XI --> SOAP ADAPTER --> ExternalClient
Here External Client is sending a search ID and ZBAPI searches for that record and send the FirstName and LastName.
I am using external Definitions in XSD format as follows.
INPUT XSD is
=========================================
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://cincom.com/xi/socrates/customerSearch" targetNamespace="http://cincom.com/xi/socrates/customerSearch">
<xsd:element name="ZBAPI_GET_NAME">
<xsd:complexType>
<xsd:all>
<xsd:element name="ID" type="xsd:integer" minOccurs="0" />
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:schema>
===========================================
Reciving XSD file has
==============================================
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:socrates.cincom.com" targetNamespace="urn:socrates.cincom.com">
<xsd:element name="ZBAPI_GET_NAME_RESPONSE">
<xsd:complexType>
<xsd:all>
<xsd:element name="ADDRESSDATA" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="FNAME" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="LNAME" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:schema>
=========================================================
I HAVE TESTED THE ZBAPI AND IT WORKS WELL ON ITS OWN. ALSO I HAVE TESTED THAT THE MESSAGE SENT FROM OUTSIDE CLIENT IS REACHING BAPI. HOWEVER WHEN I GOTO 'SXMB_MONI' AND CHECK THE
XML STRING THAT THE RECIEVER IS GETTING, I SEE JUST THE FOLLOWING TWO LINES
===================================
<?xml version="1.0" encoding="UTF-8" ?>
<ns1:ZBAPI_GET_NAME_RESPONSE xmlns:ns1="urn:socrates.cincom.com" />
======================================
IF YOU NEED ANY FURTHER INFO, PLEASE LET ME KNOW.
HOPE SOME ONE CAN GUIDE ME WITH THIS PROBLEM.
THANKS IN ADVANCE
RAMRam
Can you pls. confirm whether the mapping of your XSD fields & BAPI fields are in same sequence. I mean hierarchy is same or not.
Just to verify, as you said you are using Sync scenario that means you are using ONE Sender Soap & ONE Reciever RFC adapter.
Regards
Lalit -
Synchronous RFC -- SOAP Scenario: problem with SOAP Response/Fault Mapping
Hi,
I've a synchronous RFC --> PI --> SOAP Scenario. The problem is that the message structure of the sending RFC doesn't match the Webservice Structure.
The (SAP standard) RFC has just a Request / Response message structure. Part of the Response Message structure is a exception structure.
The Webservice has a Request / Response message structure and in case of an error I get a SOAP:Fault.
Problem now is that I cannot configure that scenario without usage of BPM as I will have to map SOAP:Response or SOAP:Fault to the RFC Response structure.
Has anybody another idea to do that synchronous scenario (with usage of message mapping) without BPM?
BR
Holger1)
you maus define 3 mapping.
1)request
2)response
3)Fault
in Interface mapping define at response boths (2-3) mapping. its clear??
2)
otherwise sometjhing is not clear, why do you want fault?? why dont you get only response message. we implement this kind of response:
<response_MT>
<ID> (error ID)
<system> (target system)
<error> (Error Description)
</response>
by this way fault message is not needed. but if you must have it just follow the top of message else, propose second.
Thanks
Rodrigo
Thanks
Rodrigo
Edited by: Rodrigo Pertierra on Feb 25, 2008 11:52 AM -
Problem with SOAP FAULT messages
Hi,
I'm developing the flash interface for a .NET application.
The client side (flash) communicate with server side (.NET) by web
services. The problem is that when the server side send a Fault
message flash breaks telling "Unable to connect to
endpoint........". In this case I need to know the error message
send by the server but the fault.faultstring is undefined.
Here the server Fault message:
HTTP/1.1 500 Internal Server Error.
Date: Wed, 23 Aug 2006 09:07:10 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Cache-Control: private
Content-Type: text/xml; charset=utf-8
Content-Length: 419
<?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>SoapHeader</faultcode>
<faultstring>The userid: xxxx is
invalid</faultstring>
<detail />
</soap:Fault>
</soap:Body>
</soap:Envelope>
And this the code that handle the fault case:
pendingcall.onFault = function (fault:Object){
rootObj.gbl_logger.log("WS Fault: "+ fault.faultstring ,
10);
As you can see the real faultstring is "The userid: xxxx is
invalid" but in the faultstring property of the fault object I
found "undefined".
I've read many posts that report that the problem can be
solved in the server side modifing the HTTP HEADER from 500 to 200.
Unfortunately I can't access the server side code. Exists a way to
resolve the problem in the client side? Seems it is a Flash bug as
the SOAP 1.1 specs tells that all SOAP Fault messages must carry a
HTTP 500 header. Exists some patch that solve the problem?
Thanks.Hi ,
Thanks for joining the Community.
Please get in touch so we can resolve this issue for you.
Click here for contact details.
Thanks
James -
Problems with SOAP Adapter/Interface
Hi Experts,
we currently try and experiment with XI 3.0 Stack 09 and the SOAP adapter respectively.
We started with a simple interface (foo..., see wsdl attachment) that we want to provide by XI.
All configurations (SLD, Integration Repository, Integration Directory) should have been done accordingly as we suppose, similar to other szenarios we have already implemented.
When we send a SOAP request based on a generated wsdl to XI we get the exception at the bottom of this text, containing e.g.
com.sap.aii.messaging.srt.BubbleException: error during conversion [null "null"];
com.sap.aii.messaging.util.XMLScanException: Parsing an empty source. Root element expected!
For sending the SOAP message we used XMLSpy.
Did someone have similar problems or can give us an working WSDL example, or some hint?
Thanks in advance,
Klaus Lukas
foo.wsdl
<?xml version="1.0" encoding="ISO-8859-1"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:p1="urn://poreceive.xi.pse.siemens.com" targetNamespace="urn://poreceive.xi.pse.siemens.com" name="foo_out_sync">
<wsdl:types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn://poreceive.xi.pse.siemens.com" targetNamespace="urn://poreceive.xi.pse.siemens.com">
<xsd:element name="foo" type="foo_DT"/>
<xsd:complexType name="foo_DT">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
fe0bb241d2a011d9cd15e9729ee2f568
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="item" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
fe0bb240d2a011d9acede9729ee2f568
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="foo">
<wsdl:part name="foo" element="p1:foo"/>
</wsdl:message>
<wsdl:portType name="foo_out_sync">
<wsdl:operation name="foo_out_sync">
<wsdl:input message="p1:foo"/>
<wsdl:output message="p1:foo"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="foo_out_syncBinding" type="p1:foo_out_sync">
<soap:binding xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="foo_out_sync">
<wsdl:input>
<soap:body xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="foo_out_syncService">
<wsdl:port name="foo_out_syncPort" binding="p1:foo_out_syncBinding">
<soap:address location="http://xxxxxxxx:8000/XISOAPAdapter/MessageServlet?channel=:Foo_SOAP_Service:SOAP_Foo_out&version=3.0&Sender.Service=Foo_SOAP_Service&Interface=urn%3A%2F%2Fporeceive.xi.pse.siemens.com%5Efoo_out_sync" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
soap message incl. error
<?xml version="1.0"?>
<!-- see thedocumentation -->
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body>
<SOAP:Fault>
<faultcode>SOAP:Server</faultcode>
<faultstring>error during
conversion</faultstring>
<detail>
<s:SystemError
xmlns:s="http://sap.com/xi/WebService/xi2.0">
<context>XIAdapter</context>
<code>XMLScanException</code>
<text><![CDATA[
com.sap.aii.af.mp.module.ModuleException
at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.process
(XISOAPAdapterBean.java:697)
at
com.sap.aii.af.mp.module.ModuleLocalLocalObjectImpl3.process
(ModuleLocalLocalObjectImpl3.java:103)
at com.sap.aii.af.mp.ejb.ModuleProcessorBean.process
(ModuleProcessorBean.java:221)
at
com.sap.aii.af.mp.processor.ModuleProcessorLocalLocalObjectImpl0.process
(ModuleProcessorLocalLocalObjectImpl0.java:103)
at com.sap.aii.af.mp.soap.web.MessageServlet.doPost
(MessageServlet.java:543)
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:385)
at
com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleReques
t(HttpHandlerImpl.java:263)
at
com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet
(RequestAnalizer.java:340)
at
com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet
(RequestAnalizer.java:318)
at
com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebConta
iner(RequestAnalizer.java:821)
at
com.sap.engine.services.httpserver.server.RequestAnalizer.handle
(RequestAnalizer.java:239)
at com.sap.engine.services.httpserver.server.Client.handle
(Client.java:92)
at com.sap.engine.services.httpserver.server.Processor.request
(Processor.java:147)
at
com.sap.engine.core.service630.context.cluster.session.ApplicationSessio
nMessageListener.process(ApplicationSessionMessageListener.java:37)
at
com.sap.engine.core.cluster.impl6.session.UnorderedChannel$MessageRunner
.run(UnorderedChannel.java:71)
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:94)
at com.sap.engine.core.thread.impl3.SingleThread.run
(SingleThread.java:162)
Caused by: com.sap.aii.messaging.srt.BubbleException: error during
conversion [null "null"]; nested exception caused by:
com.sap.aii.messaging.util.XMLScanException: Parsing an empty source.
Root element expected!
at
com.sap.aii.messaging.srt.xmb.XMBWebServiceExtension.onResponseToWS
(XMBWebServiceExtension.java:936)
at
com.sap.aii.messaging.srt.xmb.XMBWebServiceExtension.invokeOnResponse
(XMBWebServiceExtension.java:602)
at com.sap.aii.messaging.srt.ExtensionBubble.onMessage
(ExtensionBubble.java:58)
at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.process
(XISOAPAdapterBean.java:576)
... 20 more
Caused by: com.sap.aii.messaging.util.XMLScanException: Parsing an
empty source. Root element expected!
at com.sap.aii.messaging.util.StreamXMLScannerImpl.open
(StreamXMLScannerImpl.java:104)
at com.sap.aii.messaging.mo.DefaultItem.setData
(DefaultItem.java:294)
at
com.sap.aii.messaging.srt.xmb.XMBWebServiceExtension.makeItemFromPayload
(XMBWebServiceExtension.java:972)
at
com.sap.aii.messaging.srt.xmb.XMBWebServiceExtension.onResponseToWS
(XMBWebServiceExtension.java:879)
... 23 more
]]></text>
</s:SystemError>
</detail>
</SOAP:Fault>
</SOAP:Body>
</SOAP:Envelope>Hi Klaus
In your wsdl file the soap address tag (given below)
<b><soap:address location="http://xxxxxxxx:8000/XISOAPAdapter/MessageServlet?channel=:Foo_SOAP_Service:SOAP_Foo_out&version=3.0&Sender.Service=Foo_SOAP_Service&Interface=urn%3A%2F%2Fporeceive.xi.pse.siemens.com%5Efoo_out_sync" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/></b>
is to be edited as
<b><soap:address location="http://xxxxxxxx:50000//XISOAPAdapter/MessageServlet?channel=:Foo_SOAP_Service:SOAP_Foo_out" /></b>
because the soap address format should be like :
<i>http://host:port/XISOAPAdapter/MessageServlet?channel=party:service:channel</i>
For more information :
http://help.sap.com/saphelp_nw04/helpdata/en/0d/5ab43b274a960de10000000a114084/frameset.htm
Hope this will be helpful.
Regards
Suraj -
Hi!
I need to implement the following scenario:
In SAP an user exit calls an RFC which uses a TCP/IP Connection (SM59) to the XI and sends data over this connection to it. The XI connects via a SOAP adapter my server program and sends the data in a soap stream to this server.
This works sometimes ok and sometimes not.
The status for those messages in the XI is "scheduled for outbound processing" with a little black arrow pointing to the right.
The error message in the Runtime Workbench for such a job is:
SOAP: request message entering the adapter
SOAP: call failed
SOAP: sending a delivery error ack ...
SOAP: sent a delivery error ack
How can I find out what the problem is?
Thanks,
KonradHi,
When a message is scheduled for outbound processing, it is normally sent automatically.
does it always sit at this status or does it change after a while ?
If it is an issue with the connectivity from the Integration Server to the Adapter Framework you would get a different error message.
If it is an issue with connectivity from the SOAP adapter to your target, you would also get a different error - it is likely to be shown as an outright failure. Plus the error shown in the message is likely to be
"com.sap.aii.af.ra.ms.api.DeliveryException: java.net.ConnectException: Connection refused"
Hope this helps.
i think you need to get Basis involved to see why messages are not getting sent from the rfc queues automatically all the time.
Cheers
Colin. -
Problem with SOAP 1.1 Format
Hello everyone.
I am use SAP XI SOAP 1.1 with WS-Security. At the end of the header of the message the tag <wsse:BinarySecurityToken> is repeating twice which causes a problem from the other receiving SOAP adapter (webMethods). Anyone knows how to fix this?
Sample:
</ds:KeyInfo>
</ds:Signature>
<wsse:BinarySecurityToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-
wss-wssecurity-utility-1.0.xsd" wsu:Id="sap-1" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-
200401-wss-soap-message-security-1.0#Base64Binary">MIIFSjCCBDKgAw
</wsse:BinarySecurityToken>
<wsse:BinarySecurityToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-
wss-wssecurity-utility-1.0.xsd" wsu:Id="sap-1" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-
200401-wss-x509-token-profile-1.0#X509v3" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-
200401-wss-soap-message-security-1.0#Base64Binary">MIIFSjCCBDKgAw
</wsse:BinarySecurityToken>
</wsse:Security>
</SOAP:Header>
Edited by: Baheej Awamy on Apr 13, 2009 9:09 AMHi Prateek,
I just receive the same note from SAP Active Global Support,
I am going to apply this note and hopefully resolve the issue. -
Problem with SOAP Attachment in MM7
Hi, I'm developing with Bea Weblogic 7 sp2 a MM7 server. My problem is when I add an attachment to SOAP message, Weblogic can't receive the message and say something as "The ID referenced by .... is unknow" but the href attribute in SOAP Message has the same value as the Content-ID of the attachment.
The attachment is multipart/mixed. Please, I need help.
I add here an old post from other user about this problem.
<i>Hi
I need some help for a problem I have with bea 7.0 sp1 web services.
I'm trying to develop a SOAP Message Handler to intercept a SOAP Messages.It seems
work properly for simple soap requests.
But I need to send attachements so my request is like:
POST /mm7/mm7Service HTTP/1.0
Content-Type: multipart/related; type="text/xml"; start="<2ED4C017A7C250C35409DE82D1A8E6B1>";
boundary="----=_Part_18_90248.1076664111251"
Accept: application/soap+xml, application/dime, multipart/related, text/*
User-Agent: Axis/1.1
Host: xxx.xxx.xxx.xxx
Cache-Control: no-cache
Pragma: no-cache
SOAPAction: "http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-2?operation=Deliver"
Content-Length: 5177
------=_Part_18_90248.1076664111251
Content-Type: text/xml; charset=UTF-8
Content-Transfer-Encoding: binary
Content-Id: <2ED4C017A7C250C35409DE82D1A8E6B1>
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<ns1:TransactionID soapenv:mustUnderstand="0" xsi:type="xsd:string" xmlns:ns1="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-2">E8D97EC0A80A712B5CF3C7E5A56AF121</ns1:TransactionID>
</soapenv:Header>
<soapenv:Body>
<DeliverReq xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-2">
<MM7Version>5.3.0</MM7Version>
<LinkedID>fa571b8e93C0A809513c33d383069dfb</LinkedID>
<Sender>
<RFC2822Address displayOnly="false">[email protected]</RFC2822Address>
</Sender>
<Recipients>
<To>
<Number displayOnly="false">+123454678</Number>
</To>
<Cc>
<RFC2822Address displayOnly="false">[email protected]</RFC2822Address>
</Cc>
<Bcc>
<RFC2822Address displayOnly="false">[email protected]</RFC2822Address>
</Bcc>
</Recipients>
<Priority>High</Priority>
<Content href="cid:74935BFBD687B557CE9C25A591FEE0DA" allowAdaptations="true"/>
</DeliverReq>
</soapenv:Body>
</soapenv:Envelope>
------=_Part_18_90248.1076664111251
Content-Type: multipart/mixed;
boundary="----=_Part_17_2373292.1076664111231"
Content-Transfer-Encoding: binary
Content-Id: <74935BFBD687B557CE9C25A591FEE0DA>
------=_Part_17_2373292.1076664111231
I implemented a simple Handler with a system.out in
public boolean handleRequest(MessageContext mc)
method
But weblogic never gets there. It gives me this error instead:
javax.xml.soap.SOAPException: failed to receive message:
at weblogic.webservice.core.DefaultWebService.invoke(DefaultWebService.java:227)
This seems related to this line
<Content href="cid:74935BFBD687B557CE9C25A591FEE0DA" allowAdaptations="true"/>
If I remove it, it can reach the handleRequest() method.
Unfortunately I need the Content parameter....
Does weblogic support href attributes in soap ?
many thanks to whatever help
(I already lost 3 days on that problem.....)
alan</i>
Thanks.Hello,
Problem 1)
In a previous question about this in SDN, someone (sorry, can't remember who) answered:
"Have you or the user logged into the SAP GUI before? If not, have them login in. Our problems occured
with new users that never logged into the SAP gui and so the user profile was never loaded with the ini
file."
Please try that.
Problem 2)
Are you sure it's running with the same variant in the background?
What if you try every 5 minutes instead - maybe a minute is too short and it gets mixed up.
You could also try copying RSWUWFML2 to ZRSWUWFML2, inserting an infinite loop and then attaching to it in order to debug it in the background.
regards
Rick Bakker
Hanabi Technology -
Trivial problem with SOAP attachments
Hi,
I'm writing a very simple standalone JAXM client which will send a SOAP message with attachments to a listening servlet. I can get the code to work for a SOAP message without attachments with no problems, but when I try to create an AttachmentPart object, there is a problem when running the code (there is an exception when I try to create an AttachmentPart object) even though the code compiles ok.
It must be something really obvious, and I've tried copying examples from the JWSDP tutorial but to no avail! Any ideas welcome!
import javax.xml.soap.*;
import java.util.*;
import java.net.URL;
public class JAXMClient{
public static void main(String[] args){
String me = "Simon";
try{
SOAPConnectionFactory scFactory = SOAPConnectionFactory.newInstance();
SOAPConnection con = scFactory.createConnection();
MessageFactory factory = MessageFactory.newInstance();
SOAPMessage message = factory.createMessage();
// create attachment
AttachmentPart attachment = message.createAttachmentPart();
attachment.setContent(me, "text/plain");
attachment.setContentId("my_name");
message.addAttachmentPart(attachment);
URL endpoint = new URL("http://localhost:8080/EGSO/TestServlet");
System.out.println("Calling service....");
SOAPMessage response = con.call(message,endpoint);
System.out.println("Reply received!");
response.writeTo(System.out);
con.close();
catch(Exception e){
System.out.println("Error somewehere");I use the below code to add attachments (from JWSDP tutorial)
StringBuffer urlSB = new StringBuffer();
urlSB.append(req.getScheme()).append("://").append(req.getServerName());
urlSB.append( ":" ).append( req.getServerPort() ).append( req.getContextPath() );
String reqBase = urlSB.toString();
AttachmentPart apText = msg.createAttachmentPart(new DataHandler(new URL(reqBase + "/test.html")));
apText.setContentType("text/html");
msg.addAttachmentPart(apText);
(where msg is the SOAPMessage, and the "test.html" file resides in your servlet container's ROOT dir (eg $TOMCAT_HOME/webapps/ROOT)
Ben -
Problem with soap receiver adapter
Hi All
I have Idoc sender and soap receiver in my scenario.
I am calling web service deployed on WAS.
The web service is getting called but the acknowledgement message in xi contains following system error acknowledgement because of which xi changes the status of message to WAIT and starts retrying.
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Inbound Message
-->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
<SAP:Category>XIAdapterFramework</SAP:Category>
<SAP:Code area="MESSAGE">GENERAL</SAP:Code>
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText>com.sap.aii.af.ra.ms.api.MessagingException: java.net.SocketTimeoutException: Read timed out: com.sap.aii.af.ra.ms.api.RecoverableException: java.net.SocketTimeoutException: Read timed out</SAP:AdditionalText>
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack />
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
Please anybody can help to resolve this problem. This scenario has worked without any error previously.
Thanks in advance
BeenaHi Bhavesh,
It is an Async call where method does not return anything.
I added entries in IDX_NOALE but still it is setting the message status to WAIT and does retry.
Following is the Audit Log in Runtime workbench :
Audit Log for Message: 22b3052d-c519-034e-85db-e65d541d6414
Time Stamp Status Description
2006-12-13 10:25:23 Error SOAP: error occured: java.net.SocketTimeoutException: Read timed out
2006-12-13 10:25:23 Error Exception caught by adapter framework: Read timed out
2006-12-13 10:25:24 Error Delivery of the message to the application using connection AFW failed, due to: Read timed out.
2006-12-13 10:25:24 Success The asynchronous message was successfully scheduled to be delivered at Wed Dec 13 10:30:24 GMT+05:30 2006.
2006-12-13 10:25:24 Success The message status set to WAIT.
2006-12-13 10:30:25 Success Retrying to deliver message to the application. Retry: 1
2006-12-13 10:30:25 Success The message was successfully retrieved from the receive queue.
2006-12-13 10:30:25 Success The message status set to DLNG.
2006-12-13 10:30:25 Success Delivering to channel: INSPWCCT_PVtoSAP_Ack
2006-12-13 10:30:25 Success SOAP: request message entering the adapter
2006-12-13 10:35:28 Success SOAP: call failed
2006-12-13 10:35:28 Success SOAP: sending a delivery error ack ...
2006-12-13 10:35:28 Success SOAP: sent a delivery error ack
2006-12-13 10:35:28 Error SOAP: error occured: java.net.SocketTimeoutException: Read timed out
2006-12-13 10:35:28 Error Exception caught by adapter framework: Read timed out
2006-12-13 10:35:28 Error Delivery of the message to the application using connection AFW failed, due to: Read timed out.
2006-12-13 10:35:28 Success The asynchronous message was successfully scheduled to be delivered at Wed Dec 13 10:40:28 GMT+05:30 2006.
2006-12-13 10:35:28 Success The message status set to WAIT.
I have tried this scenario earlier. I am sending the same Idoc from R3 which was processed successfully earlier.
Thanks
Beena.
Maybe you are looking for
-
WPSM54G V1.1 - Can't Print Without Manually Connecting - Vista
Have just setup the print print server for use with a Samsung SCX4200 multifunction printer. Took a bit of time unistalling and reinstalling printer drivers to get it to work, allowing the computer to download the latest Vista driver from Microsoft w
-
Why is this date not between these 2 date range
hi , when i execute the following select case when to_date('11/27/2006 11:58:35 PM' , 'mm-dd-yyyy hh:mi:ss am') not between to_date('11/26/2006 9:04:33 AM', 'mm-dd-yyyy hh:mi:ss am') and to_date('11/27/2006 12:02:00 PM', 'mm-dd-yyyy hh:mi:ss am') t
-
Help - my mail account has been hijacked
I have just received this email from my mac account affress - what does it mean? From: **** Date: 11 August 2010 08:10:40 BDT To: **** Subject: Greatest love tips of your life Reply-To: **** Find out what your friends have been keeping from you, new
-
JSP with Visual Age integrator
Using the public beta of WA Integrator for WL 5.1, I was able to use all the feature of WL, except JSP. Infact, WL compile them using jspc, but then, when execute javac as an external process, cannot compile them into class file because javac can't s
-
I have SAP ERP 6.0 EHP 6 and want migrate on HANA. In SWPM choose SAP Buisness Suite powered by SAP HANA EHP6 for SAP ERP 6.0 On HANA SAP HANA Database Preparation Prerequisites Check SWPM requires UC Kernel NW738 Where i can down