Soap - Adapter / XML-Handling
Hello @,
is it possible to receive a xml-file via SOAP-Adapter and pass it to a another SOAP-Receiver without haveing any mapping between?
>
Bernd Kresse wrote:
> Ah ... ok, that is also my knowledge about this. I must define the structure of the message to handle a message, regardless of needing a mapping.
>
> What about define a "structure" with only tag and put the "real" structure in this single tag?
if you are not using a mapping then the structure is irrelevant (for file scenarios etc) but since yours is a SOAP the structure will anyway be present in terms of a WSDL
Similar Messages
-
What is the maximum size a sender SOAP adapter can handle?
Hi,
I am using sender SOAP adapter and receiver RFC adapter.
What is the maximum size of request message it can handle efficiently.
In the current scenario which I need to design , the request XML file could be up to 24 MB.
Also if you could comment on which would be the best to use as the sender side - SOAP or File Adapter
when the request message/file is of such size?
regards
Arun Ghi,
>What is the maximum size of request message it can handle efficiently.
it totally depends on your hardware and flow design inside XI/PI
>In the current scenario which I need to design , the request XML file could be up to 24 MB.
this size is not a lot for a "normal" XI machine but it also depends on the
volume of those messages - that is if you need to send
one message like that per day or 1000 per half an hour...
>Also if you could comment on which would be the best to use as the sender side - SOAP or File Adapter
when the request message/file is of such size?
SAP's general recommendation is to use messages around 5mb
but it heavily depends on other factors so don't threat it as a must
Regards,
michal Krawczyk -
Message Level Security with SOAP Adapter
Hi,
I need to use Message Level Security with my SOAP Adapter. Please let me know if anyone has done the same in the past?
What are the steps I would need to do? How can I use WSS based security in the SOAP Adapter?Hi,
Message-level security is recommended and sometimes a prerequisite for inter-enterprise communication.
It improves communication-level security by adding security features that are particularly important for inter-enterprise
Message-level encryption is required if message content needs to be confidential not only on the communication lines but also in intermediate message stores.
Refer
How to use Client Authentication with SOAP Adapter
XML Encryption Using Web Services Security in SAP NetWeaver XI
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f0650f56-7587-2910-7c99-e1b6ffbe4d50
http://help.sap.com/saphelp_nw04/helpdata/en/a8/882a40ce93185de10000000a1550b0/frameset.htm
Thanks
swarup -
Java exception appear during file adapter to handle large xml
Hi,Guys,
I am using file adapter to poll one folder of my local.one get input.xml,then do something,then write out output.xml.
input.xml format is :
<mes:DataRequestIns xmlns:mes="http://xml.netbeans.org/schema/MessageDefined">
<!--1 or more repetitions:-->
<mes:DataIns>
<mes:address>Ang Mo Kio 5,63 street</mes:address>
<mes:birthday>14/12/1970</mes:birthday>
<mes:firstName>Sing1</mes:firstName>
<mes:gender>0</mes:gender>
<mes:ID>1001</mes:ID>
<mes:lastName>NorthMan</mes:lastName>
<mes:postcode>2002</mes:postcode>
<mes:telephone>6665222</mes:telephone>
<mes:surname>Sur</mes:surname>
<mes:status>single</mes:status>
<mes:location>sgp</mes:location>
<mes:HP1>11111</mes:HP1>
<mes:HP2>22222</mes:HP2>
<mes:passport>123456878</mes:passport>
<mes:company>ST</mes:company>
<mes:department>TO</mes:department>
<mes:occupation>engineer</mes:occupation>
<mes:experience>10</mes:experience>
<mes:level>2</mes:level>
<mes:certificate>high</mes:certificate>
<mes:specialisation>computer</mes:specialisation>
<mes:staffNumber>1020</mes:staffNumber>
<mes:fax>00200</mes:fax>
<mes:email>[email protected]</mes:email>
<mes:national1>sgp</mes:national1>
<mes:national2>sgp</mes:national2>
<mes:interestingField>bpel</mes:interestingField>
<mes:national>earth</mes:national>
<mes:oversea>yes</mes:oversea>
</mes:DataIns>
<mes:DataIns>
</mes:DataIns>
</mes:DataRequestIns>
if my input.xml contain less than 1000 records,then it's working,once greater than 1000,then appear exception.for normal case ,must have more than 10000 records need to handle,and file size is 11.2MB.
so,Does any other way or how to use file adapter to handle it ?
thank you
exception :
SEVERE: An error occured while scanning for the next trigger to fire.
org.quartz.JobPersistenceException: Failed to obtain DB connection from data sou
rce 'soaNonManagedDS': java.sql.SQLException: Could not retrieve datasource via
JNDI url 'jdbc/SOALocalTxDataSource' weblogic.jdbc.extensions.ConnectionDeadSQLE
xception: weblogic.common.resourcepool.ResourceDeadException: 0:weblogic.common.
ResourceException: Could not create pool connection. The DBMS driver exception w
*as: Socket read timed out [See nested exception: java.sql.SQLException: Could no*
*t retrieve datasource via JNDI url 'jdbc/SOALocalTxDataSource' weblogic.jdbc.ext*
*ensions.ConnectionDeadSQLException: weblogic.common.resourcepool.ResourceDeadExc*
*eption: 0:weblogic.common.ResourceException: Could not create pool connection. T*
*he DBMS driver exception was: Socket read timed out]*
at org.quartz.impl.jdbcjobstore.JobStoreCMT.getNonManagedTXConnection(Jo
bStoreCMT.java:167)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLoc
k(JobStoreSupport.java:3652)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.acquireNextTrigger(JobSt
oreSupport.java:2654)
at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:
*235)*
Caused by: java.sql.SQLException: Could not retrieve datasource via JNDI url 'jd
bc/SOALocalTxDataSource' weblogic.jdbc.extensions.ConnectionDeadSQLException: we
blogic.common.resourcepool.ResourceDeadException: 0:weblogic.common.ResourceExce
ption: Could not create pool connection. The DBMS driver exception was: Socket r
ead timed out
another exception:
Message handle error.
error while attempting to process the message "com.collaxa.cube.engine.dispatch.
message.invoke.InvokeInstanceMessage"; the reported exception is: Transaction Ro
lledback.: weblogic.transaction.internal.TimedOutException: Transaction timed ou
t after 302 seconds
BEA1-3468FC5E3C698D2A82F7
at weblogic.transaction.internal.ServerTransactionImpl.wakeUp(ServerTran
sactionImpl.java:1742)
at weblogic.transaction.internal.ServerTransactionManagerImpl.processTim
edOutTransactions(ServerTransactionManagerImpl.java:1609)
at weblogic.transaction.internal.TransactionManagerImpl.wakeUp(Transacti
onManagerImpl.java:1885)
at weblogic.transaction.internal.ServerTransactionManagerImpl.wakeUp(Ser
verTransactionManagerImpl.java:1519)
at weblogic.transaction.internal.WLSTimer.timerExpired(WLSTimer.java:35)
at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTunin
gWorkManagerImpl.java:516)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
*; nested exception is: weblogic.transaction.internal.TimedOutException: Transact*
ion timed out after 302 seconds
BEA1-3468FC5E3C698D2A82F7
This error contained an exception thrown by the message handler.
Edited by: aris yu on Dec 27, 2009 11:55 PMHi,
we have to explicitly mention batch while configuaring file adapter.
i.e. in step 5 : Check file contains multiple messages and mention how many messages u want to process in a batch.
i.e. if you have 10000 msgs in ur file mention the size as 500. Then it will read 10000 records in 20 batches.
Now while writing to a file use Append=true property.
U have to add this property to fileadapter.wsdl (in jca:operation tag) which will be created when u complete the configuaration of file adapter with write operation.
Regards
PavanKumar.M -
XI Soap Adapter: problems in parsing XML
Hallo,
I call a Web Service using XMLSpy and this is the response (note tag <File>):
<SOAPSDK4:ExpBaselineResponse xmlns:SOAPSDK4="http://tempuri.org/PRWBS_PRIMAVERA/message/">
<RESULT>OK</RESULT>
<File><?xml version='1.0' encoding='UTF-8'?>
<Dati:Parametri xmlns:Dati="Schema">
<ELSAG xmlns="Schema">
<proj_id>4623</proj_id>
<BS_short_name>FS0084AAAA01 - B1</BS_short_name>
<BS_proj_id>1302</BS_proj_id>
<TARGET_START>2004-04-01</TARGET_START>
....etc...
If I call the same Web Service from XI, this is the response:
<SOAPSDK4:ExpBaselineResponse xmlns:SOAPSDK4="http://tempuri.org/PRWBS_PRIMAVERA/message/" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAPSDK3="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAPSDK2="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAPSDK1="http://www.w3.org/2001/XMLSchema">
<RESULT>OK</RESULT>
<File><?xml version="1.0" standalone="yes"?>
<Dati:Parametri xmlns:Dati="Schema">
<ELSAG xmlns="Schema">
<proj_id>4623</proj_id>
<BS_short_name>FS0084AAAA01 - B1</BS_short_name>
<BS_proj_id>1302</BS_proj_id>
<TARGET_START>2004-04-01</TARGET_START>
....etc....
In my flow, I use a java mapping to parse the content of tag <File> into a message.
My mapping works correctly only with the first option.
Is it possible to change XI Soap Adapter encoding for HTML?
My java mapping uses this parser:
public void execute(InputStream MyInputStream, OutputStream MyOutputStream)
throws StreamTransformationException {
SAXReader reader = new SAXReader();
Document document;
try {
document = reader.read(MyInputStream);
this instruction generates an Exception only with XI message.
Can anybody help me??
Thanks;-)Hi,
I would suggest you go through this Pdf for the SOAP Adapter configuration:
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/40728f7b-0401-0010-d9bc-8c73884a3789
And also have a glance on the info for webservices given below,
Just go through these links and they will surely help you learn more about Webservices:
<a href="/people/siva.maranani/blog/2005/09/03/invoke-webservices-using-sapxi Webservices using SAPXI</a>
<a href="/people/siva.maranani/blog/2005/05/23/communication-between-sap-system-webservice-using-proxies between SAP System & Webservice Using Proxies</a>
You can Go through these links to get some info about accessing Webservices:
http://help.sap.com/saphelp_nw04/helpdata/en/d6/f9bc3d52f39d33e10000000a11405a/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/b7/d7baaf1481a349ab723e3acd7334b3/content.htm
Go through these links which will surely help you find an answer to your problem.....
Regards,
Abhy -
Error in SOAP Adapter because XML is big
<b>Hi guys! I have a SOAP Adapter (Sender) that works fine when the XML it receives is small. If the XML is big, this error happens:</b><br><br><br>
java.lang.NullPointerException; nested exception caused by:
java.lang.NullPointerException; nested exception caused by:
com.sap.engine.lib.xml.parser.NestedSAXParserException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: XMLParser: No data allowed here: (hex) 6e, 74, 6f(:main:, row:1, col:3)(:main:, row=1, col=3) -> com.sap.engine.lib.xml.parser.ParserException: XMLParser: No data allowed here: (hex) 6e, 74, 6f(:main:, row:1, col:3)
at com.sap.engine.lib.xml.parser.XMLParser.scanProlog(XMLParser.java:2785)
at com.sap.engine.lib.xml.parser.XMLParser.scanDocument(XMLParser.java:2830)
at com.sap.engine.lib.xml.parser.XMLParser.parse0(XMLParser.java:229)
at com.sap.engine.lib.xml.parser.AbstractXMLParser.parseAndCatchException(AbstractXMLParser.java:145)
at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:160)
at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:261)
at com.sap.engine.lib.xml.parser.Parser.parseWithoutSchemaValidationProcessing(Parser.java:280)
at com.sap.engine.lib.xml.parser.Parser.parse(Parser.java:342)
at com.sap.engine.lib.xml.parser.SAXParser.parse(SAXParser.java:125)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at com.sap.aii.messaging.util.StreamXMLScannerImpl$EventProducer.run(StreamXMLScannerImpl.java:598)
at java.lang.Throwable.<init>(Throwable.java:56)
at java.lang.Throwable.<init>(Throwable.java:67)
at org.xml.sax.SAXException.<init>(Unknown Source)
at org.xml.sax.SAXParseException.<init>(Unknown Source)
at com.sap.engine.lib.xml.parser.NestedSAXParseException.<init>(NestedSAXParseException.java:23)
at com.sap.engine.lib.xml.parser.SAXParser.parse(SAXParser.java:144)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at com.sap.aii.messaging.util.StreamXMLScannerImpl$EventProducer.run(StreamXMLScannerImpl.java:598)
Caused by: com.sap.engine.lib.xml.parser.ParserException: XMLParser: No data allowed here: (hex) 6e, 74, 6f(:main:, row:1, col:3)
at com.sap.engine.lib.xml.parser.XMLParser.scanProlog(XMLParser.java:2785)
at com.sap.engine.lib.xml.parser.XMLParser.scanDocument(XMLParser.java:2830)
at com.sap.engine.lib.xml.parser.XMLParser.parse0(XMLParser.java:229)
at com.sap.engine.lib.xml.parser.AbstractXMLParser.parseAndCatchException(AbstractXMLParser.java:145)
at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:160)
at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:261)
at com.sap.engine.lib.xml.parser.Parser.parseWithoutSchemaValidationProcessing(Parser.java:280)
at com.sap.engine.lib.xml.parser.Parser.parse(Parser.java:342)
at com.sap.engine.lib.xml.parser.SAXParser.parse(SAXParser.java:125)
... 3 more
<br><br><br>
<b>ps: the big XML is well formed! It seems the application server refuses the http request (the message does not appear at SXMB_MONI)</b><br><br>
thanks in advance<br><br>
JulioJulio,
Are you sure that XML is correct?
No data allowed here: (hex) 6e, 74, 6f(:main:, row:1, col:3)
I also see Parse exceptions at different lines?
check the NOTE : 931765 @
https://websmp130.sap-ag.de/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=931765
Check if the incoming XML has style informaton associated with it. Refer to following link for more info.
http://schemas.xmlsoap.org/soap/envelope/
If the problem still persists, Restart J2EE Instance.
Regards,
Venkat.
Edited by: Venkat Anusuri on Jun 3, 2009 5:34 PM -
Send and Receive an xml file over SOAP adapter
hi,
I want to send an xml file as an attachment over SOAP adapter and Response also should be file.
Can anybody tell the exact solution.
Useful responses will be appreciated
Thanks
Jaideep JainHi Jaideep,
Yes you can send the any file throgh SOAP adapter by selecting the Keep Attachments option.
For your requirement you can go throgh the following link
Re: Attachments in SOAP adapter
http://www.w3.org/TR/SOAP-attachments
http://www.theserverside.com/tt/articles/article.tss?l=SendingAttachmentsWithSOAP
Regards
Sridhar Goli -
SOAP Adapter without SOAP envelope sets contenttype to application/xml
Hi,
I wrote a adaptermodul for the SOAP adapter to create a SOAP:HEADER.
I disable the SOAP envelope in the communication channel.
Now I get a error from the WebService Provider because the SOAP Adapter sends with Content-Type application/xml and not text/xml. I set the content-type in the adapter module but it seens to not work.
How can I correct this ?
Regards,
GeraldHi
Simple answer is NO, it is not possible (without party/channel/ service etc to process the request)
but it is worth a try to check if the URL encoding works.. though I have not tried..
for example sending the hex value of the "?" - %3F%
URL is a generic topic, you can search that to get more information
(ex : http://www.blooberry.com/indexdot/html/topics/urlencoding.htm)
Regards
Vishnu -
Hello Experts,
I have a scenario with receiver SOAP adapter, I have used the security profile in the channel and receiver agreement i have selected sign and all rudimentary requirements..
But im unable to see the signed payload in the CC monitoring..it should be in the format
<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>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:BinarySecurityToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" EncodingType="................</wsse:BinarySecurityToken>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
<ds:Reference URI="#id-24819136">
<ds:Transforms>
<ds:Transform Algorithm=...........
Im not able to see it in the SOAP adapter...have i missed something in the config...I have generated the cert in visual admin and given the correct values too in the channel and recv agreement.
Can ne one elucidate on this please...
How can i view the signed xml coming from the SOAP adapter?
Regards,
Farooq
Edited by: Farooq Hussain on Nov 12, 2008 7:46 PMHi Farooq
You have generated certificates? this will encrypt complete xml while sending. for that you need to set procedure as Encrypt this is what my understanding in this.
XML Signature
https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/55814003-0b01-0010-1ca2-c683a191ebfc
Did you have checked with this
Using Digital Signatures in XI
it doesn't talk about generating the certificate and encrypting complete message but it actually encrypt complete message when you generate certificate.
How XML Encryption can be done using web services security in SAP NetWeaver XI
This also speaks similar. I am not able to get the link .. try search for "Ensure the Confidentiality of Your SOAP Message Content" to understand more on this
Thanks
Gaurav -
How to handle error in SOAP adapter
Hi all,
I have a scenario where i have configured SOAP adapter to call a webservice which is working fine. But when ever server hosting the webservice is down, PI still shows the message is processed successfully. Through RWB, i can see that message failed in Channel Monitoring.
Can any body suggest how to capture this so that i could raise an alert. In my alert config, i have already set it for the receiver failure.
Thanks
-KulwantHI Kulwant
SOAP always send SOAP fault message in SYNC as well as ASync. You get HTTP response code 200 or system failure.
If the target system is down you will see successfully process but the response will be system failure
Check https://service.sap.com/sap/support/notes/856597
Moreover you can implement BPM where you can raise exception capturing this response. Thats the other way !!
Thanks
Gaurav -
Error while Testing SOAP Adapter In XI
<b>Hi Frndz
I am trying to test my SOAP adapter which i have exposed as a webservice. I testing this from the WSNavigator which throws the following error:</b>
HTTP/1.1 500 Internal Server Error
Connection: close
Set-Cookie: <value is hidden>
Set-Cookie: <value is hidden>
Server: SAP J2EE Engine/6.40
Content-Type: text/xml; charset=utf-8
Date: Thu, 15 Dec 2005 12:24:19 GMT
<?xml version='1.0'?>
<!-- see the documentation -->
<SOAP:Envelope xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/'>
<SOAP:Body>
<SOAP:Fault>
<faultcode>SOAP:Server</faultcode>
<faultstring>Server Error</faultstring>
<detail>
<s:SystemError xmlns:s='http://sap.com/xi/WebService/xi2.0'>
<context>XIAdapter</context>
<code>DeliveryException</code>
<text><![CDATA[
com.sap.aii.af.ra.ms.api.DeliveryException: Received HTTP response code 404 : Not Found
at com.sap.aii.af.ra.ms.impl.core.queue.CallConsumer.onMessage(CallConsumer.java:144)
at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:512)
at com.sap.engine.frame.core.thread.Task.run(Task.java:64)
at com.sap.engine.core.thread.impl5.SingleThread.execute(SingleThread.java:74)
at com.sap.engine.core.thread.impl5.SingleThread.run(SingleThread.java:141)
]]></text>
</s:SystemError>
</detail>
</SOAP:Fault>
</SOAP:Body>
</SOAP:Envelope>
<b>I have used this url for the Webservice:</b>
<u>http://<host>:<port>/XISOAPAdapter/MessageServlet?channel=:CVXSABSR_TEST_SENDER:CVXSACC_TEST_SENDER</u>
<b>I am unable to figure out where the problem is.
Any ideas to solve this?
Thanks in Advance
DhanyaR Nair</b><b>Hi Andrews and Ravi
Thanks for the quick response.
<u>Andrews</u> the Message Servlet is in OK status, as it reponded from checking the url given by you.
What should i try next?
<u>Ravi</u> i checked the url for checking the Comm Channel. There are two IDs associated with the Channel
1>Object ID
2> ObjectVersion ID
with the ObjectVersionID , we are getting the following error and with ObjectID we got the proper response </b>
<b>with ObjectVersion ID</b>
<u>http://<host>:<port>//XISOAPAdapter/HelperServlet?action=GetChannelInfo&channelID=<Object version ID></u>
<b>response:</b>
<?xml version="1.0" ?>
- <SOAP:Fault xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<faultcode>SOAP:Server</faultcode>
<faultstring>Server Error</faultstring>
- <detail>
- <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
<context>XIAdapter</context>
<code>ADAPTER.SOAP_EXCEPTION</code>
- <text>
- <![CDATA[
com.sap.aii.af.service.cpa.impl.exception.CPALookupException: Channel object with Id Channel:a9f7f390671e11daa2300012799e22c2 not available in CPA Cache.
at com.sap.aii.af.service.cpa.LookupManager.getCPAObject(LookupManager.java:202)
at com.sap.aii.af.mp.soap.web.HelperServlet.processGetChannelInfo(HelperServlet.java:455)
at com.sap.aii.af.mp.soap.web.HelperServlet.doGet(HelperServlet.java:131)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
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:95)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:160)
]]>
</text>
</s:SystemError>
</detail>
</SOAP:Fault>
<b>with the object id</b>
<u>http://<host>:<port>/XISOAPAdapter/HelperServlet?action=GetChannelInfo&channelID=<Object ID></u>
<b>Response</b>
<?xml version="1.0" ?>
- <s:ChannelInfo xmlns:s="http://sap.com/xi/WebService/xi30">
<channelID>ea30ed2ccc243fe49b7c2c5646ed3b2d</channelID>
<name>CVXSACC_TEST_SENDER</name>
<type xmlns:st="http://sap.com/xi/XI/System">st:SOAP</type>
<direction>INBOUND</direction>
<party />
<service>CVXSABSR_TEST_SENDER</service>
</s:ChannelInfo>
<b>with the url</b>
<u>http://<host>:<port>/XISOAPAdapter/HelperServlet?action=FindChannel&channel=:CVXSABSR_TEST_SENDER:CVXSACC_TEST_SENDER</u>
<b>Response</b>
<?xml version="1.0" ?>
- <s:ChannelInfo xmlns:s="http://sap.com/xi/WebService/xi30">
<channelID>ea30ed2ccc243fe49b7c2c5646ed3b2d</channelID>
<name>CVXSACC_TEST_SENDER</name>
<type xmlns:st="http://sap.com/xi/XI/System">st:SOAP</type>
<direction>INBOUND</direction>
<party />
<service>CVXSABSR_TEST_SENDER</service>
</s:ChannelInfo>
<b>How should i proceed ? Any idea frndz
Thanks in Advance
DhanyaR Nair</b> -
Error in Sender SOAP Adapter on XI 3.0 SP13
Hi All.
I have an application that sends a SOAP message to XI SOAP Adapter, to reach a synchronous interface. I've generated the .wsdl file from the Integration Directory, within the URL:
http://sapbox:59800/XISOAPAdapter/MessageServlet?channel=:BS_PORTAL:CC_S_SOAP_CREDITO
When I try to reach this URL, I get the successful response:
<i>Message Servlet is in Status OK</i>
I've also created the sender SOAP communication channel, fullfilling the default namespace and default interface correctly.
However, when I use wsnavigator client provided by SAP to prove the scenario, the SOAP message doesn't achieve XI, as the XISOAPAdapter EJB throws some exceptions:
<i>HTTP/1.1 500 Internal Server Error
Connection: close
Server: SAP J2EE Engine/6.40
Content-Type: text/xml; charset=utf-8
Date: Sat, 17 Sep 2005 02:59:12 GMT
<?xml version='1.0'?>
<!-- see the documentation -->
<SOAP:Envelope xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/'>
<SOAP:Body>
<SOAP:Fault>
<faultcode>SOAP:Server</faultcode>
<faultstring>Server Error</faultstring>
<detail>
<s:SystemError xmlns:s='http://sap.com/xi/WebService/xi2.0'>
<context>XIAdapter</context>
<code>BaseEJBException</code>
<text><![CDATA[
com.sap.aii.af.mp.processor.ModuleProcessorException
at com.sap.aii.af.mp.ejb.ModuleProcessorBean.process(ModuleProcessorBean.java:278)
at com.sap.aii.af.mp.processor.ModuleProcessorLocalLocalObjectImpl0.process(ModuleProcessorLocalLocalObjectImpl0.java:103)
at com.sap.aii.af.mp.soap.web.MessageServlet.callModuleProcessor(MessageServlet.java:162)
at com.sap.aii.af.mp.soap.web.MessageServlet.doPost(MessageServlet.java:508)
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:390)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
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:95)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:159)
Caused by: com.sap.engine.services.ejb.exceptions.BaseEJBException: Exception in method process.
at com.sap.aii.af.mp.module.ModuleLocalLocalObjectImpl3.process(ModuleLocalLocalObjectImpl3.java:121)
at com.sap.aii.af.mp.ejb.ModuleProcessorBean.process(ModuleProcessorBean.java:227)
... 19 more
Caused by: java.lang.NoSuchMethodError: com.sap.aii.messaging.srt.xmb.XMBWebServiceExtension.setDynamicConfigurationMode(I)V
at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.createXMBWSBubble(XISOAPAdapterBean.java:1129)
at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.setup(XISOAPAdapterBean.java:265)
at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:562)
at com.sap.aii.af.mp.module.ModuleLocalLocalObjectImpl3.process(ModuleLocalLocalObjectImpl3.java:103)
... 20 more
]]></text>
</s:SystemError>
</detail>
</SOAP:Fault>
</SOAP:Body>
</SOAP:Envelope></i>
I've already done something really similar on SP 9. Can it be a new problem from SP13? Does anyone has any idea?
Thanks in advance.
Deise Lima.Hi Naveen,
I have configured a SOAP sender adapter in XI 3.0 and is using the URL
http://host:port/XISOAPAdapter/MessageServlet?channel=:BS_WEBSERVICE:CC_WEBSERVICE_SOAP to post the messages. When I open the URL in the browser I am getting the error.
Message Servlet is in Status ERROR
Status information:
Servlet com.sap.aii.af.mp.soap.web.MessageServlet (Version $Id: //tc/aii/30_VAL_REL/src/_adapters/_soap/java/com/sap/aii/af/mp/soap/web/MessageServlet.java#5 $) bound to /MessageServlet
Classname ModuleProcessor: null
Lookupname for localModuleProcessorLookupName: localejbs/ModuleProcessorBean
Lookupname for remoteModuleProcessorLookupName: null
ModuleProcessorClass not instantiated
ModuleProcessorLocal not instantiated
ModuleProcessorRemote not instantiated
But when I test the URL http://host:port/XISOAPAdapter/HelperServlet?action=FindChannel&channel=:BS_WEBSERVICE:CC_WEBSERVICE_SOAP to check the communication channel I am getting the right response as below.
<?xml version="1.0" ?>
http://host:port/XISOAPAdapter/HelperServlet?action=FindChannel&channel=:BS_WEBSERVICE:CC_WEBSERVICE_SOAP <s:ChannelInfo xmlns:s="http://sap.com/xi/WebService/xi30">
<channelID>e7ac884596ea3d088cbfd8b434f942f2</channelID>
<name>CC_WEBSERVICE_SOAP</name>
<type xmlns:st="http://sap.com/xi/XI/System">st:SOAP</type>
<direction>INBOUND</direction>
<party />
<service>BS_WEBSERVICE</service>
</s:ChannelInfo
I used the http capture to debug, In the 1st case though I am getting "Message Servlet in status error" I am seeing a 200 OK code in the http capture tool. When the message is posted from .net client proxy or Altova XML Spy we are getting a 500 internal server error.
Am not sure what causes the error -
Mail Adapter to Soap Adapter keeping the attachments - How?
Hi guys,
I am working on a scenario where I should pull emails from an Exchange server and I should forward them (with their attachments) to a separate systems via a Web Service.
So far I have been able to pull the emails using the Mail Adapter and I get to see them in the monitoring tool of PI with their attachment(s). But what I am not sure of is how I should forward these emails to the external system using a web service.
This system should expose this web service that should use something similar to SOAP with attachments (I guess) and then PI should forward these attachments using the receiver SOAP adapter with the "keep attachments" option selected.
Is this something that could work as simply as this (by configuring these two adapters to keep their attachments) OR will I need to do some more fancy stuff?
Thanks for any advice you can give me on this.
AldoHi Stefan,
thanks for your replay.
Yes, I understand that the mail should be in an XML message. And with that part we are doing OK. We have managed to send the XML between the systems.
However, what I don't understand is how to pass the attachments.
How should the receiving system receive them? if they are not in the XML message itself how are these going to be passed over?
Will the SOAP envelop have some kind of link or reference to the attachments?
The receiving system is a SAP CE system and it's based on Java. Can they expose a service that will somehow handle these attachments?
Could you explain this part to us? this is where we get confused.
Thanks for your help in advance,
Aldo -
PI 7.1 problems publishing a WSDL of a sender soap adapter
We have upgraded our dev system from XI 3.0 to PI 7.1 and now I'm facing a problem with SOAP adapter. I have searched for answers here for a while but couldnu2019t find them. That why I start an own thread.
I thought with PI 7.1 it is very easy to publish the WSDL of SOAP adapter respectively a sender agreement. All you have to do is to choose your sender agreement and select the menu item "display WSDL" There you can get the WSDL and a WSDL URL. So it would be possible to deliver this URL to my partners. But while checking this URL respectively the delivered WSDL I've found a problem.
First of all the the WSDL URL doesn't look really good:
http://<server>:<port>/dir/wsdl?p=1_1ce2e954fe9632818bfff6c32f370748_portTypeBindingService
But it works. If I call this URL with a browser or with XML Spy I get the correct WSDL. Any chance to get a better readable URL?
The next thing is the proposed soap:address location in the WSDL. It has the following form:
http://<server>:<port>/XISOAPAdapter/MessageServlet?senderParty=&senderService=MYSERVICE&receiverParty=&receiverService=&interface=MYINTERFACE&interfaceNamespace=MYNAMESPACE"
If I compare it with the documentation i can see that the URL is completely different.
http://help.sap.com/saphelp_nwpi71/helpdata/en/43/951aceb1146353e10000000a11466f/frameset.htm
But again if it works all is fine but it doesn't work at least it doesnt work with XML Spy. The reason is the use of "& a m p ;" instead of only "&".
If I create a SOAP request with XML Spy an sent it to the XI I get the following error message: " Couldn't retrieve inbound binding for the given P/S/A values: FP=;TP=;FS=null;TS=null;AN=null;ANS=null;"
But if I change the SOAP request parameters replacing all the "& a m p ;" with "&" then it works.
Any chance to manage this? If I provide a WSDL on this way I want that my partners can use this "out of the box"Kulwant
Yes of course I can change that manually but therefore I have to save the WSDL to my local hard disc, change the WSDL and send it to my partner via mail. This is exactly the way I've done this till now. But with PI 7.1 I like to use the new opportunities.
Bhavesh
I have also no Service Repository till now. That's the reason why I want to use the way described in my initial post.
In PI 7.1 you can open the corresponding sender agreement of you SOAP adapter. There you find a menu item "display WSDL". If you choose this you get a window which displays the correct WSDL and an URL where you can find the WSDL too. If you copy this URL to a browser you get the same WSDL too.
http://help.sap.com/saphelp_nwpi71/helpdata/en/31/daa0404dd52b54e10000000a1550b0/content.htm
First part of my question is regarding to this URL. The URL has a strange format.
The second part is regarding to the form of soap:address in this generated WSDL. Here I have problems with the use of this "& a m p ;" string. But I have no influence on it. If I deliver my partners the obove mentioned URL to the WSDL and the WSDL contains this soap:address URL my partner will probably have the same problem like I with my XML Spy.
Gaurav
I don't understand you answer. I know the correct soap address but the IB tool generates it with this "& a m p ;" string instead of only "&". Thatu2019s the point. No idea if and how I can handle this.
But thank you for the note number. Was helpful. The number is in the online documentation too but I've read over it.
To bad that the online documentation isn't correct regarding to the soap address. But believe me the German version is even worse. There you can find the two soap adapter settings (XI parameter: interface namespace, interface) that are no longer existed in PI 7.1
Now I will test if a .NET application can handle this soap address correctly.
Edited by: Gil Ritter on Nov 14, 2008 11:25 AM -
File content conversion using SOAP adapter
Hi,
I'm using a receiver SOAP adapter in my IDOC to file scenario and need to do file content conversion in the receiver side.
Are any standard modules available for file content conversion in the SOAP adapter or do I need to write custom EJB modules for this.
Please note that I have to use a SOAP adapter, can't use any other adapter.
Thanks in advance
ShiladityaHi,
XML Document Conversion Type
● Enter recordTypes as the parameter name.
Under Parameter Value, enter the complete, comma-separated list of all names of recordset types that occur in the document to be converted.
If you decide to use this method, you can define a different conversion type for each recordset type that occurs in the XML document.
For example, you could name the recordset types as follows: RecordType1,RecordType2,RecordType3.
● Enter singleRecordType as the parameter name.
Under Parameter Value, enter the name of a recordset type that is to be used to convert all elements that occur in the XML document.
If you decide to use this method, define the same conversion type for each recordset type that occurs in the XML document.
You must enter exactly one parameter only. Whichever parameter you choose, you automatically exclude the second parameter.
You define further parameters for each recordset type.
In the remainder of this documentation the parameters are specified by the prefix <RecordType>. In your configuration, replace this name with the name of the recordset type.
Conversion Type List with Separators
● <RecordType>.fieldSeparator
Enter the field separator that is written between the individual fields of a record.
This specification is mandatory.
Conversion Type List with Fixed Field Length
● <RecordType>.fieldLengths
Specify a character string that contains a list of fixed field lengths that are separated by commas and which determines the number and the length of fields generated in the text file.
For example, you want to write a recordset with three elements that have field widths of five, ten, and fifteen characters. Enter:
<RecordType>.fieldLengths = 5,10,15
This specification is mandatory.
● <RecordType>.fieldLengthExceeded
Specify how you want to handle fields that exceed the configured field length. Permitted values for the parameter value are:
○ error (default)
Interrupts processing of message with error
○ cut
Cuts off superfluous characters
○ ignore
Ignores the field length restriction
Further Entries
● <RecordType>.beginSeparator
Enter a string. The string is placed in front of the first field of a recordset.
● <RecordType>.endSeparator
Enter a string. The string is appended to the last field of a recordset as a concluding character. The default is \r\n.
● contentType
Enter the MIME type of the converted payload. The default value is text/plain.
● addHeaderLine
Only define this parameter if you have already defined singleRecordType.
Define whether a header line is to be added to the result of the conversion.
○ none (default)
Does not insert a header line
○ fromXML
The header line is generated from the element name of the first recordset of the XML document
○ fromConfiguration
The header line is determined by the configuration parameter headerLine.
● headerLine
Only define this parameter if you have already set addHeaderLine=fromConfiguration.
The value that you define is placed in front of the result of the conversion as a header line.
● fixedLineWidth
Enter the maximum line length n (in characters) that can be written to the resulting document. The separator specified by lineSeparator is inserted in the resulting document every n characters.
● lineSeparator
Only define this parameter if you have already defined fixedLineWidth.
Specify the string that is written to the resulting document at the end of each line that is written with fixedLineWidth. The default is \r\n.
Use of Special Characters
You can use special characters in the following parameters: <RecordType>.fieldSeparator, <RecordType>.beginSeparator, <RecordType>.endSeparator, headerLine, and lineSeparator.
● Tabulator: \t
● Carriage Return (CR): \r
● Line Feed (LF): \n
● Arbitrary character: \x<code>
<code>indicates the hexadecimal character code of the character to be displayed.
Regards,
Phani
Maybe you are looking for
-
Query tuning for data-warehousing application in Oracle 8i.
We have to pick up 24 months old data. Each month data is kept in a different partition. 2007-May month data is kept in PRESC200705 partition SELECT r.account_id, p.presc_num, spm.product_id, p.month, t.best_call_state, sum(p.trx_count) FROM rlup_ass
-
DFSN-Server ID 516 Flooding Event Log
Good Day, Since setting up a Server 2012 server as a DFS root the Administrative Events log is getting flooded with DFSN-Server ID 516 warning events. We have multiple name spaces and we get a message for each every 15 minutes, so for our 6 name spa
-
Scaled purchase order delivery tolerance.
In the Purch Order side, is there a standard configuration to allow for scaled delivery tolerance. For example, instead of stating a 5% delivery tolerance for all quantities, is there a way to set it so that it will do the following: greater than or
-
Characteristic derived Update Rules
Hi guys, I have to make the update rules for a DSO. Among characteristics there is one that should by derived from the master data table of another characteristic. Even more, this attribute is time-dependent. So, let's say for characteristic zstatus
-
How to add external users?
Hi, I have a sharepoint 2013 site and I got the users from an active directory, now I have to add external users but I can't add these to the active directory, how can I do it? I have imagined two ways: 1. create a local active directory in my machin