Use of RPC-Encoding service style in PSFT Integration Broker
It appears that in PT 8.46, the only service style supported for integration is RPC-Encoding. Can someone confirm this for me? This is an outdated standard, not supported by the WS-I, and not in WSDL2. I'm wondering why this was used, if there's an option to configure it to use Document Literal instead, or to see if later versions of PeopleTools support more service styles.
Thanks.
Hi,
PeopleSoft Integration Broker generates WSDLs which conforms to WSDL 1.1. PeopleSoft supports document style.
I am able to generate Document style WSDLs in both 8.46 and 8.48 PeopleTools version. Please see below:
PeopleTools 8.46
<wsdl:binding name="CUSTOMER_SYNCBinding" type="wsdl_target:CUSTOMER_SYNC">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="CUSTOMER_SYNCSoapIn">
<soap:operation style="document" soapAction="CUSTOMER_SYNCSoapIn" />
PeopleTools 8.48
<wsdl:binding name="DEPT_SYNC_Binding" type="tns:DEPT_SYNC_PortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="DEPT_SYNC">
How did you generate your WSDL?
-Siva
Similar Messages
-
SOAP adapter and WS with rpc/encoded
Hi All,
Does anyone know if and how the SAP XI 3.0 SOAP Adapter supports WebServices which expects XML messages in rpc/encoded.
Cheers,
FRankHi Frank,
I have the same issue and I got a reply from OSS:
This problem is caused by the diversification of the WSDL binding
styles.
A Web service is described by a WSDL document. A WSDL binding
describes how the service is bound to a messaging protocol, particularly
the SOAP messaging protocol. A WSDL SOAP binding can be either an RPC
style binding or a document style binding. A SOAP binding can also have
an encoded use or a literal use. This gives us four style/use models:
- RPC/encoded
- RPC/literal
- document/encoded(It will probably disappear from future versions of
WSDL.)
- document/literal
RPC styled web services have serious interoperability problems. This
is the reason that the rpc style is not in the basic profile
specification of the web interoperability and also it has been
deprecated in the current soap specification. For these reason, the
integration directory does not currently support the RPC style! I would
suggest you to use other document style web service provider if possible
. It's the best way to solve this problem. But if you persist in using
this RPC web service provider, we still have a workaround solution:
you need to convert your RPC wsdl to a document styled wsdl and import
it to the directory and if necessary, you need to add some mapping to
solve some RPC interoperability problems.
In your case,
1. The WSDL file you used is RPC style.
2. The XI SOAP adapter doesn't support the RPC style. It only sends the
document/literal SOAP message which can't be understand by your web
service provider.
One of the significant differences between the SOAP message of RPC
style and that of the document style: the operation name is contained in
the RPC style SOAP message but not in the document's.
However, you can't solve this problem by simply specify a method
name. What you should do is convert your RPC wsdl to a document styled
wsdl. RPC turns out to be a subset of document/literal. This
means for any given RPC WSDL, you can create a completely
equivalent document/literal WSDL that would describe the same wire
messages. Here are the steps for doing this (mostly schema element
declarations).
Solution:
For each RPC operation:
1. For each part in the input and output messages of that operation,
declare a type with the contents described in step 2.
2. Declare an element with the name of the part, the type referenced by
type=". The element form must be unqualified.
3. Declare a global element with the operation name and the namespace
from soap:body/@namespace in the binding. Make the type of this element
the one defined in step 1 for the input message.
4. Declare a global element with the operation name and the word
Response appended to it and the namespace from soap:body/@namespace in
the binding. Make the type of this element the one defined in step 1 for
the output message.
5. Change the input message to contain one part and reference the
element you declared in step 3.
6. Change the output message to contain one part and reference the
element you declared in step 4.
7. Change the style to document in the binding.
After that, import the new WSDL file to the integration directory. You
will find the "method name" appears in the document style SOAP message.
But actually it's the name of the input element which is the same as
the name of the operation. It's just a little trick.
Cheers Stefan -
How to handle rpc/encoded style messages using BizTalk?
I am integrating with a lot of services and one of our customers has a service with rpc/encoded style
I could consume and generate schema from their wsdl file via BizTalk consume WCF wizard.
Once I am trying to call the service with request message that generated from the schema, it is giving an error that can not desterilize the first element of the message.
No Deserializer found to deserialize a 'FieldName' using encoding style 'null'
I compared the stub xml request message from SaopUI and I noticed that the xml expecting the data type with the element like this .
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsb="WSBanka">
<soapenv:Header/>
<soapenv:Body>
<wsb:bnkBorcsorgulama soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<sozlesmeNo xsi:type="xsd:string">?</sozlesmeNo>
<bankaKodu xsi:type="xsd:string">?</bankaKodu>
<anahtar xsi:type="xsd:string">?</anahtar>
</wsb:bnkBorcsorgulama>
</soapenv:Body>
</soapenv:Envelope>
On the other hand, I got the request of the message from Fiddler using the BizTalk , and the generate xml of the BizTalk schema without the data type.
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsb="WSBanka">
<soapenv:Header/>
<soapenv:Body>
<wsb:bnkBorcsorgulama>
<sozlesmeNo>?</sozlesmeNo>
<bankaKodu>?</bankaKodu>
<anahtar>?</anahtar>
</wsb:bnkBorcsorgulama>
</soapenv:Body>
</soapenv:Envelope>
In SoapUi, if I remove a datatype from the message, I will get same error from the BizTalk request.
I read some articles that rpc/encoded style are not supported but I am not sure and these articles are not clear.
I also read that it was supported with Soap adapter but now it is deprecated.
So, Is there any one has an experience in rpc/encoded style messages and how to handle these message in BizTalk or is there any work around to handle these messages?
Your inputs really appreciate it.
Thanks in advance,
When you see answers and helpful posts, please click Vote As Helpful, Propose As Answer, and/or Mark As AnswerHi,
Please refer to the document which might help you:
#RPC/Encoded Style
http://www.c-sharpcorner.com/UploadFile/martinkropp/DesigningInteroperableWebService11232005044847AM/DesigningInteroperableWebService.aspx -
Hi Experts,
I have read it in some forum thread stating that, we can't use RPC/encoded style in XI. Even if we get RPC style wsdl files from other platforms we have to first convert it into Document style to access XI.
Question:
When we create wsdl thro' XI also, it automatically creates with document style. Do we have any option to create a wsdl file with RPC style? If it is not possible with XI then, is there any other way to create RPC style wsdl file for the XI service.
Regards
SaraYes its possible,
Please check following :-
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/c018da90-0201-0010-ed85-d714ff7b7019
RPC WSDL in XI
Vishal
Reward points for useful Help -
J2ME + message style "rpc/encoding"
Hi,
I have a web services with message style "rpc/encoded" and i need consume this web service from a J2ME app. I wrote in the J2ME help that is impossible because it supports the "document/literal" style. How can i call this methods? Is it possible?
Thanks.
BrunoRajesh -
Thanks, that is what I was looking for. Do you know if the sample client
code follows JAX-RPC? Or is this special API developed for Workshop web
services?
Thanks,
Pat
"Rajesh Mirchandani" <[email protected]> wrote in message
news:[email protected]..
If you look into the test view you will find a link for a java proxy(click the
"overview" tab and the the "Java Proxy" tab.). If you copy and paste thatcode
into a java client or a servlet you should be able to invoke the webservice.
>
Let me know if you need an example.
Pat Regan wrote:
It seems to me that, under the hood, a session bean is always the first
component called in a Workshop created web service. If this is the
case,
then would a Java client always use the JAX-RPC api to call it? Evenfor an
asynchronous web service? Does anyone have an example Java Client that
invokes a Workshop created web service?
Thanks,
Pat--
Rajesh Mirchandani
Developer Relations Engineer
BEA Support -
Exceptions are using rpc/encoded messages in documentwrapped mode
Version: Weblogic 8.1SP3
I exposed a web service in documentwrapped(/literal) mode, and it seems weblogic is using rpc/encoded convention instead, to serialize Exception.
I posted more infos on the Axis bugtracker : http://nagoya.apache.org/jira/browse/AXIS-1576
but I found later that the problem seems to come from Weblogic.
Does someone know a workaround for this problem ?Hi Shabrish,
As per the details from MQ Server technical guys, thread is opened by admin user of PI to put the messages on queues of MQ server and that thread does not get close itself and keep on hanging the message in Delivering Mode. Because of this issue all messages behind it get queued to Delivering mode .And as soon as we restart the Java Stack it gets flushed up and open the new connection and deliver all old messages but new message again get stuck in Delivering Mode.
Any idea on this.
Regards,
Anurag -
One project with two different web services styles (JAX-RPC and JAX-WS)
Hi theres,
how come the same project doesn't support two different web services styles?
First time I create a web service proxy using the wizard, the second step is to choose between JAX-RPC and JAX-WS. After that, this step is removed from the wizard and all subsquent web services are assumed to be the same style as the first one.
Can someone explain me why?
thanks in advance,
Manuel LeiriaHi,
yes, I think to remember that there is support for a single style only. If you need another one too then you create a new project.
Frank -
RPC/encoded style webservice
Hi Experts,
How to expose RPC/encoded style webservices from XI? As far as I know, we can expose Document literal style webservice from PI7.0.
Could you please tell me, for this question where I can get the exact answer?
Regards
SaraHi,
please go through below links
Using XML-RPC in NetWeaver
/people/sap.user72/blog/2004/09/23/using-xml-rpc-in-netweaver
External Data Loads for CRM 4.0 using XIF adapter
/people/stephen.johannes/blog/2005/08/18/external-data-loads-for-crm-40-using-xif-adapter
XML-RPC protocol and XIF Adapter
XML-RPC protocol and XIF Adapter
Thanks
Swarup -
XML Parser Error while creating Web service Client using JAX RPC
hello evryone,
Im facing XML Parser Error while creating web service client using JAX RPC. Im using Net Beans IDE for development purpose. I have wrote configuration file for client. Now i want to create Client stub. However i dont know how to do this in Net Beans. So i tried to do it from Command promt using command :
wscompile -gen:client -d build -classpath build config-wsdl.xml
here im getting Error:
error parsing configuration file: XML parsing error: com.sun.xml.rpc.sp.ParseException:10: XML declaration may only begin entities
Please help me out.
Many thanks in advance,
KaceeCan i use the client generated using jdeveloper 11g to import into the oracle forms 10g, i.e., form builder 10g. Currently this is the version we have in our office.
-
Using JAX-RPC handlers to proxy web service traffic
Hi,
I want to use JAX-RPC handlers to proxy web service traffic. In some instances the handler should modifiy / verify the message before forwarding the request to the remote web service end-point. Hence, the handler should forward the call by invoking the remote web service. In some cases the result from invoking the remove service should be post-processed by another proxy handler. To ensure that the result from invoking the remote service is available for post-processing I assume that the handler invoking the remote service must add the response message to the message context ( e g setProperty method) in the handler. Is this correctly understood?
I would like to understand that this is a technically feasible and reasonable approach of using JAX-RPC. I'd really appreciate some feedback here.
Many thanks,
TomHi Eric,
Thanks for your response. we are trying to access WSRR( manages end point urls for 7 different environments) and generate the end point dynamically at the design time. As we figured out WSRR is not compatible with OSB we are trying to implement these client side (OSB Proxy service) handlers which would get the dynamic endpoint depending on the environment used. I was able to create the handlers for this and set the jar in the classpath but the client service which should be using these handlers have to have these handlers defined in the deployment descriptor(web.xml) which am unable to see with a OSB project.
Will there be a deployment descriptor(web.xml/webservices.xml) associated with Proxy services on OSB? Or Is there any other way to add custom JAX-RPC Handlers to a proxy service? Or is there any way to connect to WSRR directly?
Thanks,
Swetha -
How to read/use RPC/Encoded WSDL in BPEL
Hi All,
We are developing a new application using Oracle BPEL and interface with an existing application.
The existing application (in mainframes) sends us the wsdl in rpc/encoded format.
How to read thie wsdl into BPEL? What we found so far is that we can use document/literal wsdl only.
Is there a way to read rpc/encoded wsdl in bpel?
Or a way to convert rpc/encoded wsdl into doucment/literal format wsdl so that it can be used in bpel?
Or any java code in between which can do this transformation?
Please help.
Thanks
ShivaSteve,
You need to do the following in order to get file and folder names from File/FTP adapter.
1. fileAdapterInboundHeader.wsdl, FTPAdapterInboundHeader.wsdl files does have header structure for file and FTP adapter respectively. These files have the following Header definition:
<types>
<schema attributeFormDefault="qualified" elementFormDefault="qualified"
targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/file/"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:FILEAPP="http://xmlns.oracle.com/pcbpel/adapter/file/">
<element name="InboundFileHeaderType">
<complexType>
<sequence>
<element name="fileName" type="string"/>
<element name="directory" type="string"/>
</sequence>
</complexType>
</element>
</schema>
</types>
<!-- Header Message -->
<message name="InboundHeader_msg">
<part element="tns:InboundFileHeaderType" name="inboundHeader"/>
</message>
2. You need to create a variable of message type InboundHeader_msg.
2.a. Open variable creation dialog box. Choose Message Type as type and open the Type Chooser.
2.b. Expend Message Type and then expend Project WSDL Files.
2.c. You will see fileAdapterInboundHeader.wsdl/ftpAdapterInboundHeader.wsdl there.
2.d. Expend the wsdl file and select message type InboundHeader_msg.
3. Now you have your header variable, double click on Receive activity and go to Adapter tab.
4. Select header variable you have created using above steps as Header Variable.
5. Add an assign activity to get fileName and directory from the header variable you have created.
6. Your header variable will be populated while adapter reads the file.
Regards,
Dharmendra
http://soa-howto.blogspot.com -
Revision: 11959
Revision: 11959
Author: [email protected]
Date: 2009-11-18 14:16:08 -0800 (Wed, 18 Nov 2009)
Log Message:
Removing rpc-encoded id attributes from the referent when used as a multiRef (i.e. referenced via an href attribute). These attributes should not be included in generic deserialization of types to ActionScript (e.g. when deserializing xsd:anyType).
QE notes: Yes, this should fix the regression. We'll still need a further change to remove attributes in SOAP and XSI namespaces.
Doc notes: N/A
Bugs: SDK-23140
Reviewer: Svetlin
Tests run: Checkintests, bug test case
Is noteworthy for integration: No
Ticket Links:
http://bugs.adobe.com/jira/browse/SDK-23140
Modified Paths:
flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/rpc/soap/SOAPDecoder.asany chance you are using atheros wifi?
-
Problem with RPC/encoded WSDL
I'm having trouble calling a web service that is based on an RPC-encoded WSDL. I've already made slight changes to the WSDL, so that I get a work-able message type for mapping purposes. These changes are based on <a href="http://www.ws-i.org/Profiles/BasicProfile-1.0-2004-04-16.html#refinement16556272"><b>soapenc:Array</b> recommendations in WSDL 1.1 Section 2.2</a> for declaration of array types.
Here's a snippet of the WSDL:
<wsdl:definitions ...>
<wsdl:types>
<schema ...>
<complexType name="ArrayOf_tns1_ServiceOption">
<complexContent>
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType"
wsdl:arrayType="tns1:ServiceOption[]"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/>
</restriction>
</complexContent>
</complexType>
</schema>
<schema ...>
<complexType name="ServiceOption">
<sequence>
<element name="key" nillable="true"
type="xsd:string"/>
<element name="value" nillable="true"
type="xsd:string"/>
</sequence>
</complexType>
</schema>
</wsdl:types>
</wsdl:definitions>
I've changed it to:
<wsdl:definitions ...>
<wsdl:types>
<schema ...>
<complexType name="ArrayOf_tns1_ServiceOption">
<sequence>
<element name="ServiceOption"
type="tns1:ServiceOption"
minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
</schema>
</schema>
<schema ...>
<complexType name="ServiceOption">
<sequence>
<element name="key" nillable="true"
type="xsd:string"/>
<element name="value" nillable="true"
type="xsd:string"/>
</sequence>
</complexType>
</schema>
</wsdl:types>
</wsdl:definitions>
The above changes have allowed me to make message mappings. But the I still get an error when sending a request to the web service. It seems that it requires the <b>xsi:type</b> and <b>soapenc:arrayType</b> attributes for arrays.
<b>How can I create these attributes? How does XI handle RPC-encoded WSDLs?</b> I haven't encountered these problems with document-literal WSDLs.
Thanks in advance.Hi Lorenzo,
the extended support of rpc-style does <b>not</b> include the support of soapenc:array. It just addresses the root of the message and its direct children (as discussed in the thread where I added this hint).
In the documentation of External Definitions you can find a hint where to find a list of supported XSD/DTD/WSDL-features. However, also there you will find no hint on the fact that soapenc:array is not supported. The reason for this is, that soapenc:array is specified in none of these standards. It is some artifact that SOAP smuggled into XSD. For good reasons WS-I prohibits the use of this artifact.
Hence, if you need support for argumentation I can only point out the WS-I document I already linked.
Greetings
Stephan -
What is the general way to invoke a rpc/encoded webservice?
Hi,
I have some confusion in invoking webservices, ok, let me explain my question in detail:
Usually, we access a web service througt its wsdl file, for a rpc/encoded style, for example, in Axis enviroment, I will need the java object for the complex message types, how can I get these java files? If I use the Sun provided WSDP tool to compile the wsdl file and get these java files, do they work? If I am not in the Axis enviroment, maybe I will compose the SOAP request directly, so, what is the general way?
Thanks.Hello,
When you want to invoke a Web Services (RPC or Document style) you generally as you said create a set fo Java class to: map the messages information to Java code, and create a proxy/stub to do the call.
Using Oracle Application Server Web Service framework you have several way of creating this client classes:
- using Oracle JDeveloper just do a File>New>Web Services>Web Service Proxy
- using the command line tool, and associated Ant tasks (WSA:Web Service Assembler), see the Web Services Developer Guide
Regards
Tugdual Grall -
Can SAP handle RPC/encoded WSDLs
I am not sure whether this is the right forum for this question, but i'll give it a try:
I have a WSDL file (web service decription) from a 3rd party tool, which is RPC/encoded, and I tried to generated an ABAP proxy class (SAP Basis 7.01). During the generation I get a couple of different errors, and the one that bothers me most is
"incorrect value for attribute use: "encoded"".
When I replace all occurrences of "use="encoded"" with "use="literal"", then the proxy generation will work, but in this case, the web service call will not work anymore (probably because the encoded response from the webservice cannot be read by the proxy class).
What can I do?
Any hints are welcome.Hi,
It seems only RPC with literal will be supported in future.
Quote from wiki Please see this:
"Some of these combinations are rarely used in practice, such as document/encoded. In general, the literal use is gaining importance, and as far as RPC/encoded is concerned, the Web Services Interoperability Organization (WS-I) in its Basic Profile Version 1.0a of August 2003 ruled out the use of SOAP encoding with web services. Document/literal and RPC/literal will be the only allowed style/use combinations in the future."
Detail wiki is available here: http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/c018da90-0201-0010-ed85-d714ff7b7019
Regards,
Gourav
Edited by: Gourav Khare on Oct 13, 2009 12:28 AM
Maybe you are looking for
-
Any time I try to down load something from Torrents an ad for MacKeeper pops up. It then doesn't let me down load it to my computer so I have neither MacKeeper nor anything from Torrents. It will not let me access the the client Transmission. How do
-
Hello there, I'm doing a search and results page for my DB, I did the recordset on the results page and the form on the search page as explained in the DW's Docs but when I try a search I get this error: Parse error: syntax error, unexpected ')', exp
-
Hello! It has been a month now, and i constantly receive memory_management BSOD's. Not to mention that my Windows R(8) Hd graphics driver crashes occasionally. I do not know if these are related in any way. I have posted a DUMP file, for review so th
-
Elements 10 locks up upon launching (Mac)
I just installed Photoshop Elements 10 on my iMac a couple weeks ago and it worked fine. I went to launch it today and all I get is the spinning wheel and I have to force quit out. I have an Intel iMac running OSX 10.6.8. HELP!
-
Please help what is oem????
I cannot find adobe cs2 anywhewre for my panther. I am struggling to find it and only i found is oems... is it legal to download it or not?? please help!!!!