Reg: soap client
while i am trying to test my webservice in soap client it throws
error
Failed to parse soap message
Original(raw) message:
com.sap.uddi.generic.impl.soap.NativeSOAPException : Failed to open socket
Cause : class java.net.ConnectException : Connection refused: connect
can anyone help me out
HI Ajay,
Same kind of problem is discussed here... Please check..
SOAP Request
Target URL for SOAP client
Re: Error in Webservice call
Cheers..
Vasu
<i>** REward Points if found useful **</i>
Similar Messages
-
Https call from SAP SOAP client tool
Hi,
in order to call a webservice via https using the SAP SOAP client tool, I've done the following:
1. The Client cert field filled with my personal certificate from IE (pcert.pfx)
2. The Trust store field left as it was (cacerts file of the jre).
When calling the service I am getting
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found
Very likely this is caused by setting 2.
Could anybody advise how to get an X.509 certificate of trusted root CAs? Any chance to export from IE or would one have to get that from a CA? File types required are ppfx or p12, which is strange since these contain private keys.
Much appreciated.
Rene FunkeHi Rene,
You need to include the full certificate chain in the p12 file. i.e. private cert and root CA cert. IE will not export the full certificate path with the private certificate unless it was imported into IE with this flag set. You could use Firefox to generate the pks12 file. It will include the full certificate path.
This private certificate (p12 file) should then be added to the truststore in XI.
Also, .p12 (pkcs#12) file format defines a file format commonly used to store private keys with accompanying public key certificates - not just private keys.
Hope this helps.
Bryan -
Parsing error when running a SOAP client
New to SOAP. Tring to get get it up an running using some of the Oreilly examples from Java and XML. Anyone with any suggestions to fix the error I am getting. Thanx in advance.
1>This is my simple SAX client:
package xml;
import java.net.URL;
import java.util.Vector;
import org.apache.soap.Constants;
import org.apache.soap.Fault;
import org.apache.soap.rpc.Call;
import org.apache.soap.SOAPException;
import org.apache.soap.rpc.Parameter;
import org.apache.soap.rpc.Response;
public class CDAdder {
public void add(URL url, String title, String artist) throws SOAPException {
System.out.println("Adding CD titled '" + title + "' by '" + artist + "'");
//Build the call object
Call call = new Call();
call.setEncodingStyleURI("urn:cd-catalog");
call.setMethodName("addCD");
call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
//Setup the parameters
Vector params = new Vector();
params.addElement(new Parameter("title",String.class,title,null));
params.addElement(new Parameter("artist",String.class,artist,null));
call.setParams(params);
//Invoke the call
Response response;
response = call.invoke(url,"");
if(!response.generatedFault()) {
System.out.println("Successful CD Addition");
} else {
Fault fault = response.getFault();
System.out.println("Error encountered: " + fault.getFaultString());
public static void main(String[] args) {
try {
URL url = new URL("http://localhost:8081/soap/servlet/rpcrouter");
String title = "Riding the Midnight Train";
String artist = "Doc Watson";
CDAdder adder = new CDAdder();
adder.add(url, title, artist);
} catch(Exception e) {
e.printStackTrace();
2>My service:
package javaxml2;
import java.util.Hashtable;
public class CDCatalog {
private Hashtable catalog;
public CDCatalog() {
catalog = new Hashtable();
catalog.put("Nickel Creek", "Nickel Creek");
catalog.put("Let it Fall", "Sean Watkins");
catalog.put("Aerial Boundaries", "Michael Hedges");
catalog.put("Taproot", "Michael Hedges");
public void addCD(String title, String artist) {
if ((title == null) || (artist==null)) {
throw new IllegalArgumentException("Title or Artist cannot be null.");
catalog.put(title, artist);
public String getArtist(String title) {
if (title == null) {
throw new IllegalArgumentException("Title cannot be null.");
return (String)catalog.get(title);
public Hashtable list() {
return catalog;
3>My deployement descriptor:
<isd:service xmlns:isd="http://xml.apache.org/xml-soap/deployment"
id="urn:cd-catalog"
>
<isd:provider type="java"
scope="Application"
methods="addCD getCD list"
>
<isd:java class="javaxml2.CDCatalog" static="false" />
</isd:provider>
<isd:faultListener>org.apache.soap.server.DOMFaultListener</isd:faultListener>
</isd:service>
4>I have deployed the SOAP Service:
D:\XML-RPC\javaxml2>java org.apache.soap.server.ServiceManagerClient http://loca
lhost:8081/soap/servlet/rpcrouter deploy xml/CDCatalogDD.xml
D:\XML-RPC\javaxml2>java org.apache.soap.server.ServiceManagerClient http://loca
lhost:8081/soap/servlet/rpcrouter list
Deployed Services:
urn:cd-catalog
D:\XML-RPC\javaxml2>
Error when I try using the service:FYI: I am running the client with JBuilder 2005
Adding CD titled 'Riding the Midnight Train' by 'Doc Watson'
Error encountered: parsing error: org.xml.sax.SAXParseException: The value of the attribute "prefix="xmlns",localpart="ns1",rawname="xmlns:ns1"" is invalid. Prefixed namespace bindings may not be empty.call.setEncodingStyleURI("urn:cd-catalog");
in the SOAP client has to be
call.setTargetObjectURI("urn:cd-catalog"); -
Handling of SOAP Faults in SOAP Clients consuming PI Web services
Hi there,
the following is in regards to SOAP fault error handling in a SOAP client that consumes a Web Service published by PI.
I have been reading a number of threads and blogs in regards to this topic and I am still left with some open questions which I hope to get some final answersclarifications through this thread.
In particular the blogs
Handling Web Service SOAP Fault Responses in SAP NetWeaver XI - Handling Web Service SOAP Fault Responses in SAP NetWeaver XI
XI: Propagation of meaningful error information to SOAP Client - XI: Propagation of meaningful error information to SOAP Client
have caused by attention.
Both of these threads are realating to the Fault Message type one can use to return errors back to a SOAP Client (.Net, Java, etc.).
In our scenario we published a number of Web Services through PI that provide functionality to integrate with an R3 back-end system using inbound ABAP Proxies.
The services are standardised and will be consumed by a number of .NetJava applications and systems. The reason for the use of ABAP proxies is the customer specific application logic that is executed in the backend system. The Web services are synchronous and don't use ccBPM in the middle. Transformations are performed in PI combined with various lookups to set default values before the message is passed into the ABAP Framework of the R3 back-end system. The lookups are done against the R3 back-end system using the PI RFC Lookup feature.
The inbound proxies currently return application errors as part of the response message back to the SOAP client. For more critical errors we introduced the use of Fault message types as the method to return the information back to the SOAP Client. This is all working satisfactory.
The questions I have are as follows.
1. When an error occurs at the IE level (e.g. mapping error), ABAP Proxy framework level (e.g. conversion from XML to ABAP format) or Adapter Framework level (Adapter releated error) a different SOAP fault message structure is returned to the SOAP Client than the one used for the application errors. The SOAP fault message structure used in this case is the standard SOAP fault used by PI to return system errors back to the caller. For those SOAP fault messages there is no payload generated that could be mapped to the SOAP fault structure used for the application errors. This would be preferrable as there would be only one Fault message structure used for both inbound ABAP proxy generated fault messages and PI generated fault messages.
Also the error messages generated by PI can be quite cryptic and difficult to interpret at the client end and could be filtered ranslated during message mapping if the payload of the PI generated SOAP fault message could be accessed in a message mapping.
Point 3 of the above thread 2759 indicates that this would be possible but doesn't outline how. Could somebody please clarify this for me as I don't believe that this is really possible ???.
My idea instead was to use the PI SOAP fault message structure to also return application errors. Therefore I would create a Fault message type that matches the PI SOAP fault structure. This would enable the SOAP Client to handle only one SOAP Fault error structure. Would that be something to look into instead ?????.
2. We have been looking at using the integrated WEB AS SOAP adapter instead of using the AF Sender SOAP adapter. While playing with this we encountered differences in the content returned through the SOAP fault generated by PI. A sample is below. Shouldn't the content of these SOAP faults be the same if the error that caused it is the same. Also the SOAP fault returned by the IE SOAP adapter is much more useful in this particular case. Both errors below are the same, a conversion error from XML to ABAP took place in the inbound ABAP proxy framework of the back-end system.
SOAP fault returned when using SOAP Sender adapter of AF
<!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>ADAPTER.JAVA_EXCEPTION</code>
<text>com.sap.aii.af.ra.ms.api.DeliveryException: XIProxy:PARSE_APPLICATION_DATA:
at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java:455)
at com.sap.aii.af.ra.ms.impl.core.queue.consumer.CallConsumer.onMessage(CallConsumer.java:134)
at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:916)
at com.sap.aii.af.ra.ms.runtime.MSWorkWrapper.run(MSWorkWrapper.java:56)
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:102)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172)</text>
</s:SystemError>
</detail>
</SOAP:Fault>
</SOAP:Body>
</SOAP:Envelope>
SOAP fault using integrated SOAP adapter of PI IE
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body>
<SOAP:Fault>
<faultcode>SOAP:Server</faultcode>
<faultstring>System Error</faultstring>
<detail>
<s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
<context/>
<code>ABAP.PARSE_APPLICATION_DATA</code>
<text>Error during XML => ABAP conversion (Request Message; error ID: CX_ST_DESERIALIZATION_ERROR; (/1SAI/TXSBE20FF604BAFEF8D990A XML Bytepos.: 564 XML Path: ns1:CreatePORequest(1)POHEADER(2)COMP_CODE(1) Error Text: Data loss occurred when converting ############################## Kernel ErrorId: CONVT_DATA_LOSS))</text>
</s:SystemError>
</detail>
</SOAP:Fault>
</SOAP:Body>
</SOAP:Envelope>
I have been reading threads for hours without being able to find one that answers questions 1 or provides a blog that outlines the approach one should take for error handling in SOAP clients that consume PI Web Services (and covers both PISystem generated faults and faults raised in Proxies).
There may already be a blog or thread and I just missed it.
Any comments are welcome.
Thanks. DieterHi Dieter,
As Bhavesh already mentioned fault messages are used for application errors. The same is described in SAP XI help:
http://help.sap.com/saphelp_nw04/helpdata/en/dd/b7623c6369f454e10000000a114084/frameset.htm
In case of system error (e.g. field length too long in proxy call or error in XI/PI mapping) there seems to be no standard way of handling it and propagating the response to the consumer of webservice.
Each system error is not recognized by SOAP adapter and SOAP adapter exception is raised.
The only bizzare solution that I can see is developing an adapter module and transport wrong message to standard fault message before delivering it to adapter engine:
http://help.sap.com/saphelp_nw04/helpdata/en/a4/f13341771b4c0de10000000a1550b0/frameset.htm
Kind regards,
Wojciech
btw nice thread -
Using CopyIntoItems from Copy.asmx from a remote soap client
Hello,
I have been working on a soap client that runs on a remote client (not on the SharePoint server) and is platform-independent so that it cannot use the SP Object Model. I have managed to get most of the functionality working using SharePoint web-services except for CopyIntoItems.
My target server is a SharePoint 2007 server and I have a Document Library set up so I can upload files into it.
My soap request looks as follows.
<?xml version="1.0" encoding="utf-8"?>
<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/"> <soap:Body>
<CopyIntoItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<SourceUrl>http://null</SourceUrl>
<DestinationUrls>
<string>http://shpt.ad2010.local:35492/sites/targetsubsite/Test List/hello.txt</string>
</DestinationUrls>
<Fields>
<FieldInformation Type="Text" DisplayName="Test Column2" InternalName="Test_x0020_Column20" Id="{8c35c0ca-d578-47fd-b7f3-aed199141c86}" Value="Value 0" />
<FieldInformation Type="Text" DisplayName="Test Column3" InternalName="Test_x0020_Column30" Id="{6c0d3fe3-4f0d-4cff-997b-201747f83315}" Value="Value 1" />
</Fields>
<Stream>WW91IHNheSBoZWxsbywgSSBzYXkgZ29vZGJ5ZQ==
</Stream>
</CopyIntoItems>
</soap:Body>
</soap:Envelope>
The URL I am invoking this on is: http://shpt.ad2010.local:35492/sites/targetsubsite/_vti_bin/Copy.asmx
The response I get back is as follows:
<?xml version="1.0" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<CopyIntoItemsResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<CopyIntoItemsResult>
0
</CopyIntoItemsResult>
<Results>
<CopyResult DestinationUrl="http://shpt.ad2010.local:35492/sites/targetsubsite/Test List/hello.txt" ErrorCode="DestinationInvalid" ErrorMessage="The Copy web service method must be called on the same domain that contains the destination url."/>
</Results>
</CopyIntoItemsResponse>
</soap:Body>
</soap:Envelope>
I am unable to find any help on the error mentioned here. I have tried setting the source URL to something valid (I have to make it up because there really is no source URL as I copy from the remote client).
I wonder if I can even use the CopyIntoItems request (or the Copy web-service as a whole) from a remote soap client, and whether it was only meant to be used for copies between SharePoint Sites. Any clues are much appreciated.I am trying to use the copy.asmx service to upload a file from a custom sharepoint form into a document library, and I can only use javascript with jquery. (no visual studio)
I have a similar soap envelope.
<?xml version="1.0" encoding="utf-8"?>
<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/"> <soap:Body>
<CopyIntoItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<SourceUrl>C://dir/file.txt</SourceUrl>
<DestinationUrls>
<string>http://[server]/sites/subsite/Demo List/sample.txt</string>
</DestinationUrls>
<Fields>
<FieldInformation Type="Text" DisplayName="Title" InternalName="Title" Id="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Value="Test Value" />
</Fields>
<Stream>base64Binary</Stream>
</CopyIntoItems>
</soap:Body>
</soap:Envelope>
I'm getting a 500 "internal server error" back.
Can anyone see what I'm doing wrong ?
Kris Blair -
SOAP client receives HTTP 302 Found
Hi all
I have a message interface for which I generated a wsdl pointing to the SOAP adapter:
http://server:50000/XISOAPAdapter/MessageServlet?channel:=servicename:channelname
If I am using SAP Soap Client to send a request (http, HTTP Basic Auth.) everything is fine, the message is in the SOAP adapter, in IS and I receive a correct SOAP response.
But if am using other clients, e. g. SoapUI, I get an HTTP 302 Found error back before the data even reaches the SOAP adapter (no message there).
Has anybody an idea how to solve this or where to find more information about it?
Thanks in advanceThanks for your answers,
but I am still lost with this error. The cluster only consists of one server node and the redirect posts to
http*s*://server:5000*1*/XISOAPAdapter/MessageServlet?channel:=servicename:channelname
So it changes to https. Why is this? What is the client (which is a standard application that we cannot change) supposed to do?
Thanks for any info
Hans -
Reg:soap-xi-rfc scenario
In soap-xi-rfc scenario if the RFC function modules processed in R/3 system with some errors then , how to handle the errors , do we need to create the error structure in xi by using the fault message type or there is any other way to handle the application errors?
pls help with suitable answers
regards
chandrakanth.kHi,
The best way to go with ur senario is make it as SOAP XI Proxy.....in proxy u can catch the errors using the fault mesage typw and if u want to validate the data that can be done......if u want to send the error report that can be done in proxy....were u can collect all the errors and send they to the enduser or display them in Application server...
Think this option if possible....
check somelinks on fault mesage.
ExchangeFalultData & ExchangeLogData
/people/shabarish.vijayakumar/blog/2006/11/02/fault-message-types--a-demo-part-1
/people/shabarish.vijayakumar/blog/2006/11/02/fault-message-types--a-demo-part-1
http://help.sap.com/saphelp_nw2004s/helpdata/en/5d/a45c3cff8ca92be10000000a114084/content.htm
Asynchronus RFC exception handling
XI Alerts are not getting triggered from proxy servers
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/ee5bc490-0201-0010-e9b5-
a258cf083bca
/people/sap.user72/blog/2006/01/16/xi-propagation-of-meaningful-error-information-to-soap-client
Fault Message
Regards,
Phani
Edited by: phani kumar on Mar 12, 2008 1:05 PM -
Deployment of SOAP client...
Hi,
My setup is iAS 10.1.2.0, database is 10.1.0.2, JDeveloper is 10.1.2.0.
I am trying to deploy a SOAP client stub to the database, when I get the errors below. Obviously I will have to load some JARs to correct this.
Having read the "http://www.oracle.com/technology/sample_code/tech/java/jsp/loadjars.html" page, I am not sure what jar files I will have to load to the 10g database (will I really need the OC4J downloaded files or can I do with the ones supplied in the database directories?), and if there are any obstacles I need to be aware of beforehand?
Cheers,
Jørgen
ORA-29521: referenced name oracle/soap/transport/http/OracleSOAPHTTPConnection could not be found
ORA-29521: referenced name org/apache/soap/encoding/SOAPMappingRegistry could not be found
ORA-29521: referenced name org/apache/soap/rpc/Call could not be found
ORA-29521: referenced name org/apache/soap/rpc/Parameter could not be found
ORA-29521: referenced name org/apache/soap/SOAPException could not be found
ORA-29521: referenced name org/apache/soap/rpc/Response could not be found
ORA-29521: referenced name org/apache/soap/Fault could not be found
ORA-29521: referenced name org/apache/soap/transport/SOAPTransport could not be foundFollowing up on the "How-To Install Soap Client Stack in Oracle..." note, I tried to base the install on the JARs available in the database installation, using the following script:
set OC4J_HOME=C:\Oracle\DB\oc4j
set ORACLE_HOME=C:\Oracle\DB
loadjava -thin -user sys/oracle@w2koracleas10g:1521:orcl -resolve -synonym -verbose -grant public %OC4J_HOME%/soap/lib/soap.jar %OC4J_HOME%/lib/dms.jar %OC4J_HOME%/jlib/javax-ssl-1_1.jar %ORACLE_HOME%/lib/servlet.jar %ORACLE_HOME%/jdk/jre/lib/ext/mail.jar
I see two problems from this:
-the SSL classes are not being loaded (I seem to remember having read that these are not supposed to go into the SYS schema, correct?)
-Among others, I receive an error "ORA-29534: referenced object SYS.oracle/soap/transport/http/OracleSOAPHTTPConnection could not be resolved". This last error is preventing me from deploying the webservice client stub.
Any hints/tips are very welcome! -How have you deployed these JARs into 10.1.0.2? -
Hi experts,
I need to create a SOAP client in ABAP for a web service that uses MTOM (xop:include) to transfer binary files.
I know how to create a client proxy in SE80 from WSDL, but I.have no idea how to send attachments with protocol MTOM.
Does anybody know how to do this in ABAP?
Thanks a lot!
LUIS B.Hi there.
Well, I couldn't get the ABAP Proxy working so I build the SOAP client from scratch using class CL_HTTP_CLIENT. It was harder because I had to take care of every aspect in the HTTP communication but in the end it was more flexible.
I hope this helps. -
I want to test sender ABAP proxy in AAE by SOAP client
To PI Specialists
Now I plan to test sender ABAP proxy in AAE by SOAP client system.
(we use aae so we set sender abap proxy by sender soap adapter.)
ABAP creating team and PI creating team are in other site.We cant contact easily.
I want to separate ABAP Unit test and PI Unit test, plan to use soap client for test driver.
(we use SOAPUI. )
the url is http://<host>:<port>/XISOAPAdapter/MessageServlet?channel=party:service:channel
I noticed that sender soap adapter is started, but the messeage protocol is invalid.
we use messege of wsdl. it must be XI3.0 protocol.
Please tell me XI3.0 protocol.
NaokiThis is possible to do in SOAPUI. I am testing this scenario using AAE, but I am also using SOAP UI Pro. The procedure is pretty basic. Instead of sending your payload in as part of the body, you have to send it in as an attachment. You will also need to set the header correctly. Here is a sample message from my SOAP UI tests that may help. The only thing you need to do differently is load the attachment, name it, and make sure that the name of the attachment is reflected in the SAP:Payload attribute. Also, I am using a Groovy script to create a GUID.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SAP="http://sap.com/xi/XI/Message/30">
<soapenv:Header>
<SAP:Main versionMajor="003" versionMinor="000" SOAP:mustUnderstand="1" wsu:Id="wsuid-main-92FFF13F5C59777FE1ABE00000A1551F7" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<SAP:MessageClass>ApplicationMessage</SAP:MessageClass>
<SAP:ProcessingMode>asynchronous</SAP:ProcessingMode>
<SAP:MessageId>${Create GUID#result}</SAP:MessageId>
<SAP:TimeSent>${=new java.text.SimpleDateFormat("yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'").format(new Date())}</SAP:TimeSent>
<SAP:Sender>
<SAP:Service>SVCNM</SAP:Service>
</SAP:Sender>
<SAP:Interface namespace="Interface_Namehttp://namespace.com">Interface_Name</SAP:Interface>
</SAP:Main>
<SAP:ReliableMessaging SOAP:mustUnderstand="1" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SAP:QualityOfService>ExactlyOnce</SAP:QualityOfService>
</SAP:ReliableMessaging>
<SAP:System SOAP:mustUnderstand="1" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SAP:Record namespace="http://www.sap.com/webas/712/soap/features/runtime/metering/" name="CallingType">SA</SAP:Record>
</SAP:System>
<SAP:Diagnostic SOAP:mustUnderstand="1" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SAP:TraceLevel>Information</SAP:TraceLevel>
<SAP:Logging>Off</SAP:Logging>
</SAP:Diagnostic>
<SAP:HopList SOAP:mustUnderstand="1" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SAP:Hop timeStamp="${=new java.text.SimpleDateFormat("yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'").format(new Date())}" wasRead="false">
<SAP:Engine type="BS">SVCNM</SAP:Engine>
<SAP:Adapter namespace="XIhttp://sap.com/xi/XI/System">XI</SAP:Adapter>
<SAP:MessageId>${Create GUID#result}</SAP:MessageId>
<SAP:Info>3.0</SAP:Info>
</SAP:Hop>
</SAP:HopList>
</soapenv:Header>
<soapenv:Body>
<SAP:Manifest wsu:Id="wsuid-main-92FFF13F5C59777FE1ABE00000A1551F7" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<SAP:Payload xlink:href="cid:TestPayload.xml">
<SAP:Name>MainDocument</SAP:Name>
<SAP:Description/>
<SAP:Type>Application</SAP:Type>
</SAP:Payload>
</SAP:Manifest>
</soapenv:Body>
</soapenv:Envelope>
Here is a picture of my SOAP UI project in case it help the understanding. -
Wanted SOAP client and server examples
I am unable to run the SOAP client and server programs.
Can anybody help me by providing some simple soap examples of both
client and server and also how to deploy them.JAX-WS has a number of samples as does NetBeans. Check out http:/jax-ws.dev.java.net and http://www.netbeans.org/kb/55/websvc-jax-ws.html
-
Hiding business-logic methods from the SOAP Client
Hello,
Is there any way to hide a method from the SOAP Client.
For Example, Lets say I have two methods in my object Foo. And the client of this web-service can create Foo thru SOAP API. The method are:
public String getName();
public Group getGroup();
I want the SOAP client to see the Foo object only with getName() and not getGroup().
Can I control this thru Java2Wsdl or something else?
Thanks,
Neeta.You can use source2wsdd with @wlws:exclude tag for the methods you want to hide.
-
WHICH SOAP CLIENT STACK FOR JDEV 10.1.3 WEBPROXY ?
Hello everybody,
I just succeeded in calling webservice stubs, created in Jdeveloper 10.1.2., from a oracle10G (R2) DB. This works perfectly...
Now i'm trying to deploy the same webservice from Jdeveloper 10.1.3 into the same database. I generated a proxy (whereas in Jdeveloper 10.1.2 you create a stub) and deployed a static method from the client class, in the proxy, into the DB (similar to the approach in Jdeveloper 10.1.2). However this doesn't work. I get a big list of error messages containing all reference errors. My guess is that the soap client stack, loaded into Oracle, is different for both versions of Jdeveloper. In that case i'm still working with the stack for jdev 10.1.2 where I should be working with the stack form jdev10.1.3.
Can anyone please tell me what .JAR's I have to load in the DB to get the proper stack needed for calling 10.1.3 proxys (or stub as you will)?
Many thx in advance!!!!
Grtz,
KimI found out that Jdeveloper 10.1.3 works with JAX-RPC webservices. So instead of installing the SOAP client stack one should install the JAX-RPC stack in the database. this stack is found on the oracle site ( search for call-out utilities).
Hope this helps people with the same problem!
Message was edited by:
Kim Zeevaarders -
Hi guys,
I'm very new to web service technology & need your help writing a simple soap client to call a web service.
the soap request should be : POST /lightboxedit/LBEDataService.asmx HTTP/1.1
Host: abourne.dyndns.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<GetProjects xmlns="http://www.lightboxedit.com/webservices/" />
</soap12:Body>
</soap12:Envelope> and the soap response is of the form : HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<GetProjectsResponse xmlns="http://www.lightboxedit.com/webservices/">
<GetProjectsResult>
<Project>
<ProjectID>int</ProjectID>
<ProjectName>string</ProjectName>
</Project>
<Project>
<ProjectID>int</ProjectID>
<ProjectName>string</ProjectName>
</Project>
</GetProjectsResult>
</GetProjectsResponse>
</soap12:Body>
</soap12:Envelope>I would appreciate a lot your help in writing the soap client to call this web service(it should be trivial to any web service expert)
thank you much.>
In that case, I take back my words. But I must
comment that it would have been appropriate if you
would have posted a link to your other post earlier.
That would have generated some helpful responses by
this time.May be I didn't succeded to formulate well my question. I apologize..
I have also written this following code to talk to web service but it's returning : Error can not communicate.
SoapRequestBuilder s = new SoapRequestBuilder();
s.Server = "abourne.dyndns.org";
s.MethodName = "GetProjects";
s.XmlNamespace = "http://www.lightboxedit.com/webservices/";
s.WebServicePath = "http://abourne.dyndns.org/lightboxedit/LBEDataService.asmx";
s.SoapAction = s.XmlNamespace+s.MethodName;
String response = s.sendRequest();
System.out.println(response);
------class SoapBuilderRequest.java
public class SoapRequestBuilder {
String Server = "";
String WebServicePath = "";
String SoapAction = "";
String MethodName = "";
String XmlNamespace = "";
private Vector ParamNames = new Vector();
private Vector ParamData = new Vector();
public void AddParameter(String Name, String Data) {
ParamNames.addElement( (Object) Name);
ParamData.addElement( (Object) Data);
public String sendRequest() {
String retval = "";
Socket socket = null;
try {
socket = new Socket(Server, 80);
catch (Exception ex1) {
return ("Error: "+ex1.getMessage());
try {
OutputStream os = socket.getOutputStream();
boolean autoflush = true;
PrintWriter out = new PrintWriter(socket.getOutputStream(), autoflush);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.
getInputStream()));
int length = 295 + (MethodName.length() * 2) + XmlNamespace.length();
for (int t = 0; t < ParamNames.size(); t++) {
String name = (String) ParamNames.elementAt(t);
String data = (String) ParamData.elementAt(t);
length += name.length();
length += data.length();
// send an HTTP request to the web service
out.println("POST " + WebServicePath + " HTTP/1.1");
out.println("Host: abourne.dyndns.org");
out.println("Content-Type: application/soap+xml");
out.println("Content-Length: " + String.valueOf(length));
out.println("SOAPAction: \"" + SoapAction + "\"");
out.println("Connection: Close");
out.println();
out.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
out.println("<soap12: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/\">");
out.println("<soap12:Body>");
out.println("<" + MethodName + " xmlns=\"" + XmlNamespace + "\">");
//Parameters passed to the method are added here
for (int t = 0; t < ParamNames.size(); t++) {
String name = (String) ParamNames.elementAt(t);
String data = (String) ParamData.elementAt(t);
out.println("<" + name + ">" + data + "</" + name + ">");
out.println("</" + MethodName + ">");
out.println("</soap12:Body>");
out.println("</soap12:Envelope>");
out.println();
// Read the response from the server ... times out if the response takes
// more than 3 seconds
String inputLine;
StringBuffer sb = new StringBuffer(1000);
int wait_seconds = 3;
boolean timeout = false;
long m = System.currentTimeMillis();
while ( (inputLine = in.readLine()) != null && !timeout) {
sb.append(inputLine + "\n");
if ( (System.currentTimeMillis() - m) > (1000 * wait_seconds)) timeout = true;
in.close();
// The StringBuffer sb now contains the complete result from the
// webservice in XML format. You can parse this XML if you want to
// get more complicated results than a single value.
if (!timeout) {
String returnparam = MethodName + "Result";
int start = sb.toString().indexOf("<" + returnparam + ">") +
returnparam.length() + 2;
int end = sb.toString().indexOf("</" + returnparam + ">");
//Extract a singe return parameter
retval = sb.toString().substring(start, end);
else {
retval="Error: response timed out.";
socket.close();
catch (Exception ex) {
return ("Error: cannot communicate.");
return retval;
} -
1)where can we check the processed xml messages in case of soap-xi-Rfc scenario after sending soap request to server?
and how to handle the application errors?Check the below:
/people/siva.maranani/blog/2005/03/01/testing-xi-exposed-web-services
Also:
I guess you are done with the adapter configuration.
To test you SOAP sender scenario, goto runtime workbench-> component monitoring-> adapter monitoring (test message).
STEP 1) Give the URL: URL Template: http://host:port/XISOAPAdapter/MessageServlet?channel=party:service:channel
STEP 2) Then enter the details of Party, Business Service, Interface name and the interface namespace.
STEP 3) Give the authorization details (user name and password).
STEP 4) The last step is to enter the payload. ie in SOAP format( to create the SOAP request follow the given steps)
To expose a webservice to the internet, you have to create a WSDL file. You can create one in Integration Directory.
One menu driven option is there "Define a webservice" can be used to create a WSDL file.
Once the WSDL file is created. Use a SOAP client tool to create the SOAP request.
You can create SOAP Request from WSDL using the following tool.
http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=65a1d4ea-0f7a-41bd-8494-e916ebc4159c
Check the SOAP request, it must be having the encoding type UTF (Unicode Transformation Formats) as UTF-16. Change it
to UTF - 8.
Once you have created the SOAP request, use the same as the payload and test the scenario.
SOAP sender configuration link:
http://help.sap.com/saphelp_erp2004/helpdata/en/ae/d03341771b4c0de10000000a1550b0/frameset.htm
Thanks
Kiran
Maybe you are looking for
-
Copying Product during Follow-up
Experts, I am facing issue in CRM 2007 while creating a follow-up transaction. I am creating Service Ticket as a follow-up document of Complaint. The problem is that all the fields are getting copied to service ticket except the Product. Product Info
-
How can I reset password in iDS5.1?
A newbie question: There is a thread as below, can some one tell me if there is a passwordMustChange value in iDS5.1? Cause I change the password in console as a diretory manager and checked on 'User must change password after reset', but there is no
-
Oracle Database 10g Express Edition (Oracle Database XE)/ BI Publisher
Hi, I have installed Oracle Database 10g Express Edition (Oracle Database XE) on my windows machine and would like to work with BI publisher for reporting in APEX applications. Question: Can I install and work with BI publisher on ORACLE DATABASE XE?
-
ITunes Match problem with Mastered for iTunes tracks
My question is, has anyone solved the problem I'm describing here? My wife bought an album (David Bowie, The Next Day, it's great), as a Mastered for iTunes album, under her Apple ID. I copied the album to my computer using Home Sharing. My computer
-
ERP Order in CIC - Need to default Division and Channel
Hi Experts, Setting up ERP orders in CIC. Everything is working fine, but to make it more efficient, we need to default the Channel and division in the order for less clicks and errors. I tried using the user paramters SPA and VTW in both CRM and R/3