Using XSLT "adapter" for invoking a WS with SOAP-ENC array type param.

Hello,
I had to write a BPEL process that calls inside it a web service which has as an input an array parameter and as an output, also an array. I already know that BPEL has limitations regarding using the SOAP-ENC Array type. I tried to rewrite the web service in order to use a literal encoding of the array parameters (using "maxOccurs" attribute), but unfortunately, the OC4J container 9.0.4 that I have to use doesn't allow this. It only allows the SOAP-ENC types for array types.
I started to write, inside the BPEL process, some "adapters" XSLT transformations before and after the invoking of the web service that uses SOAP-ENC array. The XSLT transformation before the web service invoking will translate the input array parameter defined with no SOAP encoding types (based on "maxOccurs" attribute) into a SOAP-ENC type, as it is expected by the web service. The XSLT transformation after the web service invoking will translate the returned array SOAP-ENC type into a data type defined with no SOAP encoding types (based on "maxOccurs" attribute).
The approach is pretty hairy, from the XSLT point of view and it introduces a supplementary delay due to the XSLT processing needed, but it works. The only think is that when I build the service, I obtain the following error message:
[bpelc] [Error] GCDBWebservice?WSDL:30:42: src-resolve.4.2: Error resolving component 'SOAP-ENC:Array'. It was detected that 'SOAP-ENC:Array' is in namespace 'http://schemas.xmlsoap.org/soap/encoding/', but components from this namespace are not referenceable from schema ...
But in spite of this, the process is built and deployed successfully and I was able to run it from the BPEL console.
Do you think that this approach could hide some other future problems that I can't see in this moment?
Thanks,
Marinel

Please help me for this.
I am new to Webservices and SOAP.
I am facing problem when i am calling a "add" method in the .net webservices with the following code but it gives correct result when i'm calling the "HelloWorld" method present in the webservice.
I think it will happening because, when i'm going to pass any parameter to the "add method , it does not process it.It will return me 0.
Please help me in this.
The code is:
import java.io.*;
import java.util.*;
import java.net.*;
import org.w3c.dom.*;
import org.apache.soap.util.xml.*;
import org.apache.soap.*;
import org.apache.soap.encoding.*;
import org.apache.soap.encoding.soapenc.*;
import org.apache.soap.encoding.literalxml.*;
import org.apache.soap.rpc.*;
import org.apache.soap.transport.http.SOAPHTTPConnection;
import org.apache.soap.transport.*;
import org.apache.soap.messaging.*;
import org.apache.xerces.parsers.*;
import org.apache.xerces.dom.DocumentImpl;
public class testClient {
public static void main(String[] args) throws Exception {
URL url = new URL ("http://Eurotele-it3/webService1/Service1.asmx");
//Map the Types.
SOAPMappingRegistry smr = new SOAPMappingRegistry ();
StringDeserializer sd = new StringDeserializer ();
smr.mapTypes(Constants.NS_URI_SOAP_ENC,new QName("http://Eurotele-it3/WebService1/Service1","addResult"),Integer.class,null,sd);
// create the transport and set parameters
SOAPHTTPConnection st = new SOAPHTTPConnection();
// build the call.
Call call = new Call();
call.setSOAPTransport(st);
call.setSOAPMappingRegistry(smr);
call.setTargetObjectURI ("http://Eurotele-it3/WebService1/Service1/add");
call.setMethodName("add");
//call.setEncodingStyleURI("http://schemas.xmlsoap.org/soap/encoding/");
call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
Vector params = new Vector();
params.addElement(new Parameter("x",Integer.class,"10",null));
params.addElement(new Parameter("y",Integer.class,"20",null));
call.setParams(params);
Response resp = null;
try {
resp = call.invoke (url,"http://Eurotele-it3/WebService1/Service1/add");
catch (SOAPException e) {
System.err.println("Caught SOAPException (" + e.getFaultCode () + "): " +e.getMessage ());
return;
// check response
if (resp != null && !resp.generatedFault()) {
Parameter ret =resp.getReturnValue();
Object value =ret.getValue();
System.out.println ("Answer--> " +value );
else {
Fault fault = resp.getFault ();
System.err.println ("Generated fault: ");
System.out.println (" Fault Code = " + fault.getFaultCode());
System.out.println (" Fault String = " + fault.getFaultString());
This is the complete WSDL format:
<?xml version="1.0" encoding="utf-8" ?>
- <wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://Eurotele-it3/WebService1/Service1" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://Eurotele-it3/WebService1/Service1" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
- <wsdl:types>
- <s:schema elementFormDefault="qualified" targetNamespace="http://Eurotele-it3/WebService1/Service1">
- <s:element name="HelloWorld">
<s:complexType />
</s:element>
- <s:element name="HelloWorldResponse">
- <s:complexType>
- <s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="HelloWorldResult" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="add">
- <s:complexType>
- <s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="x" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="y" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="addResponse">
- <s:complexType>
- <s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="addResult" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</wsdl:types>
- <wsdl:message name="HelloWorldSoapIn">
<wsdl:part name="parameters" element="tns:HelloWorld" />
</wsdl:message>
- <wsdl:message name="HelloWorldSoapOut">
<wsdl:part name="parameters" element="tns:HelloWorldResponse" />
</wsdl:message>
- <wsdl:message name="addSoapIn">
<wsdl:part name="parameters" element="tns:add" />
</wsdl:message>
- <wsdl:message name="addSoapOut">
<wsdl:part name="parameters" element="tns:addResponse" />
</wsdl:message>
- <wsdl:portType name="Service1Soap">
- <wsdl:operation name="HelloWorld">
<wsdl:input message="tns:HelloWorldSoapIn" />
<wsdl:output message="tns:HelloWorldSoapOut" />
</wsdl:operation>
- <wsdl:operation name="add">
<wsdl:input message="tns:addSoapIn" />
<wsdl:output message="tns:addSoapOut" />
</wsdl:operation>
</wsdl:portType>
- <wsdl:binding name="Service1Soap" type="tns:Service1Soap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
- <wsdl:operation name="HelloWorld">
<soap:operation soapAction="http://Eurotele-it3/WebService1/Service1/HelloWorld" style="document" />
- <wsdl:input>
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="add">
<soap:operation soapAction="http://Eurotele-it3/WebService1/Service1/add" style="document" />
- <wsdl:input>
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:service name="Service1">
<documentation xmlns="http://schemas.xmlsoap.org/wsdl/" />
- <wsdl:port name="Service1Soap" binding="tns:Service1Soap">
<soap:address location="http://eurotele-it3/webService1/Service1.asmx" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

Similar Messages

  • How run reports JDE from BPEL using the Adapter for JD Edwards OneWorld?

    Hi,
    I need to load on line a lot of invoices from Bpel to JD Edwards using the Adapter for JD Edwards OneWorld (iWay).
    Using Business Functions as Web Services it wasn't a not good idea because of this Adapter is poorly constructed and doesn't allow simultaneous loads, a memory leak occurs on JDE server. And to load them invoice by invoice is very slow.
    A choice is to use Z tables and load them through schedules, but Bpel loses total control.
    I heard that I can run processes reports that enable to extract the data from the Z tables and load them into JDE.
    How can I execute reports JD Edwards invoked from BPEL using the Adapter for JD Edwards OneWorld?
    Thanks
    Francisco

    Hi Dario,
    BizTalk 2013 R2 (JDE LOB Adapter) is not tested against latest release of JDE EnterpriseOne 9.1.
    It only supports with 8.12 and 9.0 version of JDE.
    Refer the discussion here:
    Integrating BizTalk with JDE EnterpriseOne
    Rachit
    Please mark as answer or vote as helpful if my reply does

  • When & Why to Use WL Adapter for MQSeries as compared to MDB?

              We have a need to both send and receive message via MQSeries in asynch mode.
              Initial assessment was to receive messages via MDB and send messages by use a
              pool of Sessions to the MQ Mgr connection.
              Given this why should one use WL Adapter for MQ?
              Thanks
              Tariq.
              

    I assume you are referring to the "WLI" adapter? Perhaps try posting
              your question to the "weblogic.integration.developer" or
              "weblogic.integration.interest" newsgroup.
              If you are referring to the "Messaging Bridge", which comes with
              WebLogic server, then the advantage is that MQ need not be up for the
              senders to continue sending. Senders can send messages to a WebLogic
              queue, which the bridge can in turn forward to an MQ queue. The
              disadvantage is that the extra bridge hop may slow down your app.
              Tom, BEA
              P.S. You are likely by now aware that WL 8.1 (just released in beta),
              can automatically pool foreign (or WebLogic) sessions for you.
              Additionallly, it provides help in that you can configure wrappers for
              foreign JMS objects. See "Accessing JMS Foreign Providers" and
              "Accessing JMS via Servlets and EJBs" listed under new features:
              http://e-docs.bea.com/wls/docs81/notes/new.html#1125379
              Tariq Bhatti wrote:
              > We have a need to both send and receive message via MQSeries in asynch mode.
              > Initial assessment was to receive messages via MDB and send messages by use a
              > pool of Sessions to the MQ Mgr connection.
              >
              > Given this why should one use WL Adapter for MQ?
              >
              > Thanks
              > Tariq.
              >
              

  • File TO File-Using XSLT mapping (for Beginners) --- Error in XSLT

    Hi,
    I am following this wiki (TO File-Using XSLT mapping (for Beginners))
    https://wiki.sdn.sap.com/wiki/display/XI/FileTOFile-UsingXSLTmapping%28forBeginners%29
    When creating  Xslt from the MapForce, when I click on the XSLT Tab I am getting the following error
    http://www.flickr.com/photo_zoom.gne?id=1216715484&size=o
    How to correct this error ?.....
    Thanks
    srini
    Message was edited by:
            srinivas

    Hello,
    The XSD you are using is from Data Type and you are using it for mapping.
    Instead export XSD for Message Type and also pass the XML schema for source that will solve the issue and your XSLT will be generated.
    Regards,

  • I purchased a new Windows 8 PC. I have used and continue to use Outlook 2010 for my calendar. With my old Windows 7 PC and Outlook 2010, my calendar sinked properly with my Iphone 5. Now with the new Windows 8 PC, it does not. Help!

    I purchased a new Windows 8 PC and I use Outlook 2010 for my calendar. With my old Windows 7 PC and Outlook 2010, my calendar would sync with my Iphone 5, but with the new Windows 8 PC and Outlook 2010, it does not, and I can't figure out how to snyc them. The emails from Outlook 2010 sync, but the calendar does not. Help! Thanks. 

    Easy solution for restoring lost calendar informaiton, thank goodness.  On your iPhone, go to settings, then to iCloud.  If your Calendar selection is turned off,  turn it on.  Your info should restore.  If your Calendar selection is turned on, then turn it off.  Choose to save calendars when asked.  After it shuts the Calendar off, turn it back on.  Your info should be restored.
    Thank you to Apple support for walking me through this.  Shame on you Apple for not just telling people about this easy fix rather than making us go through all of this pain and worry.
    - JT

  • Wanted 'Using Sap Adapter for Connector Framework' document

    dear friends
    I want to display ABAP reports in iView without Transaction iView.
    From the below forum link
    /community [original link is broken]
    i came to know i can get the help from 'Using Sap Adapter for Connector Framework' document, but the link is giving
    404
    The requested resource is not available.
    can anybody help me to find out the document
    thanx in advance
    please reply me at the earliest.
    kantha

    have a look here - should help:
    http://help.sap.com/saphelp_nw04s/helpdata/en/f2/db49421c0b3c54e10000000a1550b0/frameset.htm
    <a href="http://help.sap.com/saphelp_nw04s/helpdata/en/f2/db49421c0b3c54e10000000a1550b0/frameset.htm">sap help portal</a>
    you may also download PDK, there are some samples in it.
    Best Oliver

  • Can I use a USB for 2nd generation shuffle with a 3rd generation shuffle

    Can I use a USB for 2nd generation shuffle with a 3rd generation shuffle?
    Seems to be a good fit, but my computer doesn't seem to recognise it.

    GreenApple5315 wrote:
    Can you use a 3rd gen charger with a 2nd gen Shuffle?
    By "3rd gen charger" are you referring to the USB cable with the
    4 ring audio connector on the other end?
    If so, the answer is again NO...

  • Import for WSDL in rpc-Style Format with ComplexContent SOAP-ENC:Array

    Hello, we are working on a business process that consume a web services using XI and ABAP Proxy.
    We have and error type CANNOT_PRODUCE_ELEMENT, problably because the WSDL rpc-style imported on Integration Respository contents elements like this:
    <complexContent>
      <restriction base="SOAP-ENC:Array">
        <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="ns1:mytype[]" />
      </restriction>
    </complexContent>
    SO, anybody knows if it's possible to dessign mapping correctly with others elements like "sequence"... ?
    Thanks a lot,

    Alex,
    I would recommend to check your WSDL for any syntax errors etc in any of the external tools like XML SPY or Stylus Studio etc and then upload into XI.
    ---Satish

  • Using DB Adapter for MS SQL Server 2005  SP in OSB 11g.

    Hi All,
    I have a requirement to create a DB Adapter for MS SQL Server Stored Procedure in JDeveloper and export the Adapter file to OSB 11g. I have Created the Adapter and imported it into OSB 11g successfully. Created the Datasource and Connection pool also in console.
    The problem is while trying to execute the created business Service, I am getting the error as below,
    <Oct 26, 2012 12:20:25 PM IST> <Error> <JCATransport> <BEA-381967> <Invoke JCA outbound service failed with application error, exception: com.bea.wli.sb.transports.jca.JCATransportException: oracle.tip.adapter.sa.api.JCABindingException: oracle.tip.adapter.sa.impl.fw.ext.org.collaxa.thirdparty.apache.wsif.WSIFException: servicebus:/WSDL/Test/CheckAppID/WL_Driver/CheckAppId_WL_Driver [ CheckAppId_WL_Driver_ptt::CheckAppId_WL_Driver(InputParameters,OutputParameters) ] - WSIF JCA Execute of operation 'CheckAppId_WL_Driver' failed due to: Unimplemented string conversion.
    Conversion of JDBC type to String is not supported.
    An attempt was made to convert a Java object to String using an unsupported JDBC type: .
    ; nested exception is:
         BINDING.JCA-11804
    Unimplemented string conversion.
    My XSD is ,
    <element name="InputParameters">
    <complexType>
    <sequence>
    <element name="application_id" type="int" db:index="1" db:type="INT" minOccurs="0" nillable="true"/>
    </sequence>
    </complexType>
    </element>
    <element name="OutputParameters">
    <complexType>
    <sequence>
    <element name="RowSet0" type="db:RowSet0_RowSet" db:type="RowSet0" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
    <element name="RowSet1" type="db:RowSet1_RowSet" db:type="RowSet1" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
    </sequence>
    </complexType>
    </element>
    <complexType name="RowSet1_RowSet">
    <sequence>
    <element name="RowSet1_Row" minOccurs="0" maxOccurs="unbounded">
    <complexType>
    <sequence>
    <element name="cde" type="int" db:type="INT" minOccurs="0" nillable="true"/>
    <element name="msg" db:type="NVARCHAR" minOccurs="0" nillable="true">
    <simpleType>
    <restriction base="string">
    <maxLength value="255"/>
    </restriction>
    </simpleType>
    </element>
    </sequence>
    </complexType>
    </element>
    </sequence>
    </complexType>
    <complexType name="RowSet0_RowSet">
    <sequence>
    <element name="RowSet0_Row" minOccurs="0" maxOccurs="unbounded">
    <complexType>
    <sequence>
    <element name="aaa" type="boolean" db:type="BIT" minOccurs="0" nillable="true"/>
    <element name="bbb" db:type="NVARCHAR" minOccurs="0" nillable="true">
    <simpleType>
    <restriction base="string">
    <maxLength value="10"/>
    </restriction>
    </simpleType>
    </element>
    </sequence>
    </complexType>
    </element>
    </sequence>
    </complexType>
    I don't know why there is a datatype conversion error.
    Help me in resolving this.
    Regards,
    Nataraj R.

    Hi,
    I believe NVARCHAR is an unsupported type...
    The following document lists the supported data types for SQL Server stored procedures and functions... NVARCHAR is not in the list... :-(
    http://docs.oracle.com/cd/E23943_01/integration.1111/e10231/adptr_db.htm#CHDEBEEE
    Hope this helps...
    Cheers,
    Vlad

  • Sample JAVA code using Resource Adapter for RFC Connections

    Hi Java Knowledgeable Ones.
    I have successfully deployed the SAP Netweaver J2ee Engine "Resource Adapter for RFC Connections to ABAP Systems" to my Web Application Server.  Now I need to develop a JAVA application that would utilize this deployed resource adapter.  The resource adapter specifies the SAPClient, UserName, and password.  I am thinking that the JAVA code to invoke this connection would therefore not need to provide this information as it should be available in the resource adapter.
    Do you have sample code that you could send to me showing how to do this?
    Thanks,
    Kevin

    Hi Kevin,
    this is actually no good style! You should not open the connection with the adaptor knowing the password. Usually it should work via a connection that uses only basic rights  and the user has already authenticated and is using his security ticket.
    For security handling see:
    http://help.sap.com/saphelp_nw04/helpdata/en/61/f8bc3d52f39d33e10000000a11405a/frameset.htm
    Regards,
    Benny

  • Use vCloud SDK for Java to integrate with vCD 5.6

    Hello Folks,
             Newbie here.
             I have a situation where a home grown app, that uses vCloud SDK for Java to invoke a vCloud Director 5.1 installation. We use this for powering on/ off a few VMs.
             Our installation is being upgraded from vCloud Director 5.1 to 5.6.
             My question is, are we expected to upgrade/ carry out any code changes to our current implementation to integrate with the newer runtime version (5.6)?
             Many thanks in advance.
    Regards
    Mohan

    Somewhat going from memory here.
    As long as the REST API Versions URL states that it is compatible with 5.1, then you should be fine to make the calls as v5.1.
    Here is the section of the documentation for that:
    Using the vCloud API with vCloud Director
    The I think the SDKs are just wrappers in a manner of speaking.  They all eventually translate code (java/python/etc) into a REST API system that is sent into vCloud Director via the API.  For the most part, I think it'll work.
    That's not talking about "support", just that it should work with some exceptions.  I don't know if there is an official stance on cross compatibility like this.

  • Using Gigabit Adapter for intranet access, wireless for internet access

    I have a PowerMac G5 I have been using with a built-in wireless adapter for a couple of years. I also have a Windows PC with a wireless adapter as well. Both of these access the internet over my AirportExpress connected to a cable modem.
    I wanted to take advantage of the Gigabit adapter in the PowerMac for copying files directly between the computers, so today I installed a Gigabit card in the PC and connected the two through a Gigabit switch.
    Unfortunately, I can't seem to get either the Mac or the PC to get valid IP addresses, let alone talk with each other.
    Any idea what I need to do on the Mac to get it to use the gigabit adapter for intranet traffic? I am guessing whatever I do on the Mac I will need to also do on the PC.
    Thanks!
    Brian

    What you're trying to do is called 'dual homing', and it's not really supported by OS X's automatic network configuration, though 'Internet Sharing' is close.
    I'd avoid it if at all possible. Connect the computers and the cable modem to the Gigabit switch. If the switch doesn't have routing capability, you might need a router also, to provide DHCP and NAT services. This would save you a lot of grief compared to figuring out how to set up the Mac and Windows for dual-home operation.

  • Can you use one PC for 2 different Ipods, with out erasing the others music from Itunes?

    Can you use one PC for different Ipod touch's , with out erasing the other persons Itunes music?

    Yes.  See:
    How to use multiple iPods, iPads, or iPhones with one computer

  • How to export data using application adapter for EBS?

    my scenario is : there're some external apps need to communicate with EBS,
    and the intermedia layer supposed to be implemented by SOA suite/Fusion adapters.
    my confusion is:
    in oracle integration repository, most of APIs are CUD (create, update, delete) without R (read). but many of our usecase was querying data from EBS.
    my question is : although, considering performance and unpridictable query object and granularity,it's not a good idea using app adatper to querying data from EBS via app api, but if I using db adapter to query data directly, it seems not easy as expected because it need to know the detail table structure and relationship and to build sql by hand.
    so, is there other proper way to get outbound data integration using fusion middleware? additional, I'm not clear about the ODI functionality , is it possible and easy to use ODI perform this task, eg, is ODI has enough API to interact with fusion adapter?

    In the Adapter Wizard look under "Other Interfaces/Custom Objects/PLSQL APIs". There are many many "Get" APIs here. None of these are identified or explained in the Integration Repository but the Trading Community Architecture - Technical Implementation Guide does give a little bit of information about what they do.

  • Adapter for TCP/IP communication with XI

    Hi Experts,
    The provider of the external system sez he will use TCP/IP communication...
    wat adapter do we have to use in XI?? pls help

    TCP/IP  is a connection oriented network protocol. TCP - Transmission control protocol   IP - internet protocol.
    TCP/IP is a 7 layers model  and the top layer is a application layer where all the applications or services are supported such as file, HTTP, Webservice etc....   PI adapters are application layer services. SO PI can support all the current adapters.
    >>wat adapter do we have to use in XI?? pls help
    Since TCP/IP establishes connectivity between one system to another system using network protocol, PI can use that connection for communication.  You can use any adapter that PI supports. please elaborate your question.
    Link: http://www.tcpipguide.com/free/t_ApplicationLayerLayer7.htm

Maybe you are looking for

  • Problem to deploy to a WebService interface for ADF Business Components to Weblogic Server

    Hi,   I'm trying to deploy a custom application ,in which i have exposed ADF Business Components through a WebService interface, to a standalone weblogic server. Application Module is configured with a Service Interface for ordinary ViewObjects. Now

  • Is there a way to place the Dock on the bottom of a secondary monitor?

    I use my iMac as primary monitor and a secondary display on the right. Is there a way to place the dock on the bottom of the secondary monitor(in a way that the display arrangment actually match the monitor position on my desk)? I want something like

  • Can't open the illustration could not complete the requested operation

    I have a really big problem with an illustrator file which i can't open. As the file was saved Adobe Illustrator unexpected closed down during the saving process which damaged the file. The corrupted file size is still big (368mb) and if i open the f

  • Apple 21" studio Display monitor-help

    I have a G4 and just got an apple 21" studio display monitor I work in photoshop CS2 what do I put the resolution at? Color and refresh? what should the white point and gamman be? what should the profile on themonitor display? I WENT INTO THE PREFERE

  • Sound Blaster SB0100 5.1 stopped work

    My , most of the time I keep the sound turned off so dont have any idea when it stopped working, it worked before without issues any ideas what or where to start checking, I assume their is some sort of process of elimination process I can use. When