Passing complex object from bpel process to web service

I have deployed my web service on apache axis.The wsdl file looks like as follows,
<?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions targetNamespace="http://bpel.jmetro.actiontech.com" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://bpel.jmetro.actiontech.com" xmlns:intf="http://bpel.jmetro.actiontech.com" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <wsdl:types>
- <schema targetNamespace="http://bpel.jmetro.actiontech.com" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
- <complexType name="ADLevelBpelWS">
- <sequence>
<element name="adLevelStr" nillable="true" type="xsd:string" />
<element name="id" type="xsd:int" />
</sequence>
</complexType>
- <complexType name="TransResultWS">
- <sequence>
<element name="description" nillable="true" type="xsd:string" />
<element name="id" type="xsd:long" />
<element name="responseType" type="xsd:int" />
<element name="status" type="xsd:boolean" />
</sequence>
</complexType>
- <complexType name="NamespaceDataImplBpelWS">
- <sequence>
<element name="ADLevel" nillable="true" type="impl:ADLevelBpelWS" />
<element name="appdataDef" nillable="true" type="apachesoap:Map" />
<element name="description" nillable="true" type="xsd:string" />
<element name="name" nillable="true" type="xsd:string" />
</sequence>
</complexType>
- <complexType name="CreateSharedNamespaceBpelWS">
- <sequence>
<element name="actor" nillable="true" type="xsd:string" />
<element name="comment" nillable="true" type="xsd:string" />
<element name="from" nillable="true" type="xsd:string" />
<element name="namespaceData" nillable="true" type="impl:NamespaceDataImplBpelWS" />
<element name="priority" type="xsd:int" />
<element name="processAtTime" nillable="true" type="xsd:dateTime" />
<element name="replyTo" nillable="true" type="xsd:string" />
<element name="responseRequired" type="xsd:boolean" />
</sequence>
</complexType>
</schema>
- <schema targetNamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
- <complexType name="mapItem">
- <sequence>
<element name="key" nillable="true" type="xsd:string" />
<element name="value" nillable="true" type="xsd:string" />
</sequence>
</complexType>
- <complexType name="Map">
- <sequence>
<element maxOccurs="unbounded" minOccurs="0" name="item" type="apachesoap:mapItem" />
</sequence>
</complexType>
</schema>
</wsdl:types>
+ <wsdl:message name="createNamespaceRequest">
<wsdl:part name="createNs" type="impl:CreateSharedNamespaceBpelWS" />
</wsdl:message>
- <wsdl:message name="createNamespaceResponse">
<wsdl:part name="createNamespaceReturn" type="impl:TransResultWS" />
</wsdl:message>
- <wsdl:portType name="JMetroWebService">
- <wsdl:operation name="createNamespace" parameterOrder="createNs">
<wsdl:input message="impl:createNamespaceRequest" name="createNamespaceRequest" />
<wsdl:output message="impl:createNamespaceResponse" name="createNamespaceResponse" />
</wsdl:operation>
</wsdl:portType>
- <wsdl:binding name="NAMESPACEWITHMAPSoapBinding" type="impl:JMetroWebService">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="createNamespace">
<wsdlsoap:operation soapAction="" />
- <wsdl:input name="createNamespaceRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://bpel.jmetro.actiontech.com" use="encoded" />
</wsdl:input>
- <wsdl:output name="createNamespaceResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://bpel.jmetro.actiontech.com" use="encoded" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:service name="JMetroWebServiceService">
- <wsdl:port binding="impl:NAMESPACEWITHMAPSoapBinding" name="NAMESPACEWITHMAP">
<wsdlsoap:address location="http://localhost:7001/axis/services/NAMESPACEWITHMAP" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
My NamespaceDataObjectImplBpelWS object contains element appDataDef which is of type java.util.Map.My bpel wsdl file is as below,
<?xml version="1.0"?>
<definitions name="NsWithMap"
targetNamespace="http://bpel.jmetro.actiontech.com"
xmlns:tns="http://bpel.jmetro.actiontech.com"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPE DEFINITION - List of services participating in this BPEL process
The default output of the BPEL designer uses strings as input and
output to the BPEL Process. But you can define or import any XML
Schema type and us them as part of the message types.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<types>
     <schema targetNamespace="http://bpel.jmetro.actiontech.com" xmlns="http://www.w3.org/2001/XMLSchema">
     <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
          <element name="createNamespace" type="tns:CreateSharedNamespaceBpelWS"/>
          <element name="transResult" type="tns:TransResultWS"/>
          <complexType name="TransResultWS">
               <sequence>
                    <element name="description" type="string" />
                    <element name="id" type="long" />
                    <element name="responseType" type="int" />
                    <element name="status" type="boolean" />
          </sequence>
          </complexType>
          <complexType name="ADLevelBpelWS">
               <sequence>
                    <element name="adLevelStr" type="string" />
                    <element name="id" type="int" />
               </sequence>
          </complexType>
          <complexType name="NamespaceDataImplBpelWS">
               <sequence>
                    <element name="ADLevel" type="tns:ADLevelBpelWS" />
                    <element name="description" type="string" />
                    <element name="name" type="string" />
                    <element name="appdataDef" type="apachesoap:Map" />
               </sequence>
          </complexType>
          <complexType name="CreateSharedNamespaceBpelWS">
               <sequence>
                    <element name="namespaceData" type="tns:NamespaceDataImplBpelWS" />
          </sequence>
          </complexType>
     <element name="desc" type="string"/>
     </schema>
     <schema targetNamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/XMLSchema">
               <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
                    <complexType name="mapItem">
                         <sequence>
                              <element name="key" type="string" />
                              <element name="value" type="string" />
                    </sequence>
                    </complexType>
                    <complexType name="Map">
                         <sequence>
                         <element maxOccurs="unbounded" minOccurs="0" name="item" type="apachesoap:mapItem" />
                         </sequence>
                    </complexType>
          </schema>
</types>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MESSAGE TYPE DEFINITION - Definition of the message types used as
part of the port type defintions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<message name="NsWithMapRequestMessage">
<part name="payload" element="tns:createNamespace"/>
</message>
<message name="NsWithMapResponseMessage">
<part name="payload" element="tns:transResult"/>
</message>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PORT TYPE DEFINITION - A port type groups a set of operations into
a logical service unit.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- portType implemented by the NsWithMap BPEL process -->
<portType name="NsWithMap">
<operation name="initiate">
<input message="tns:NsWithMapRequestMessage"/>
</operation>
</portType>
<!-- portType implemented by the requester of NsWithMap BPEL process
for asynchronous callback purposes
-->
<portType name="NsWithMapCallback">
<operation name="onResult">
<input message="tns:NsWithMapResponseMessage"/>
</operation>
</portType>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PARTNER LINK TYPE DEFINITION
the NsWithMap partnerLinkType binds the provider and
requester portType into an asynchronous conversation.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<plnk:partnerLinkType name="NsWithMap">
<plnk:role name="NsWithMapProvider">
<plnk:portType name="tns:NsWithMap"/>
</plnk:role>
<plnk:role name="NsWithMapRequester">
<plnk:portType name="tns:NsWithMapCallback"/>
</plnk:role>
</plnk:partnerLinkType>
</definitions>
I am trying to set this map data using java code ,
     HashMap procADMap1 = new HashMap(5);
               PropertyTypeWS pType = new PropertyTypeWS();
               pType.setTypeIndex(2);     
          AppdataDefImplWS appData1 = new AppdataDefImplWS();
          appData1.setName("Project");
          appData1.setType(pType);
          appData1.setMaxSize(400);
          appData1.setLOB(false);
     appData1.setDefaultValue("Project Default value");
          procADMap1.put(appData1.getName(), appData1);
          setVariableData("request","createNs","/createNs/namespaceData/appdataDef",procADMap1);     
Then I am passing request object to the method which I want to invoke from bpel process.
I am able to deploy the application but when I do post message I am getting following exception,
NamespaceWithMap (createNamespace) (faulted)
[2004/09/09 18:35:54] "{http://schemas.oracle.com/bpel/extension}bindingFault" has been thrown. Less
faultName: {{http://schemas.oracle.com/bpel/extension}bindingFault}
messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
code: {Server.userException}
summary: {org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.}
detail: {null}
Is there any other way to handle Map type in bpel process?
Thanks in advance,
Sanjay

Thanks for the quick reply.Actually the web service is already deployed on the server.What I want to do is use existing wsdl file of the deployed web service and invoke the method of the same using oracle PM.
If I remove element which uses apachesoap:Map type it just works fine also I am getting the complex object returned by the web service method.But when I try to set appDataDef which is of type apachesoap:Map(Axis conversion for java.util.Map and it uses namespace xmlns:apachesoap="http://xml.apache.org/xml-soap") I am getting the error.
Can you give me some direction to use this exising wsdl file to set map object or it is not possible.

Similar Messages

  • Call bpel process as Web service from database

    Hi!
    i'm trying tocall bpel process as web service from Oracle database. When i try the same pl sql function, i can successfully call regular j2ee web service without any problem. When i instantiate process from bpel console - everything is ok .. but when i call process from plsql function, i get this error:
    ORA-20000: soapenv:Server.generalException - Missing BPEL archive file.
    The process domain cannot locate the BPEL archive for process
    &quot;AuthorizeKeyCode&quot;, revision &quot;AuthorizeKeyCode&quot;.
    If you have deployed the process please check that it is located in the
    directory &quot;/ora/bpelpm/integration/orabpel/domains/vinves/deploy&quot;.
    ; nested exception is:
    ORABPEL-05205
    Missing BPEL archive file.
    The process domain cannot locate the BPEL archive for process
    &quot;AuthorizeKeyCode&quot;, revision &quot;AuthorizeKeyCode&quot;.
    If you have deployed the process please check that it is located in the
    directory &quot;/ora/bpelpm/integration/orabpel/domains/vinves/deploy&quot;.
    i tried undeploy and deploy the process again, i tried to restart the server - still the same problem...
    anyone can help, please?
    thanks ...
    Tomas

    Hi,
    I am trying to invoke the HelloWorld BPEL process from Oracle DB using the demo_soap package downloaded from oracle.com.
    Find the PL/SQL block below:
    DECLARE
    req Demo_Soap.request;
    resp Demo_Soap.response;
         zipcode VARCHAR2(100) := 'Suresh';
    BEGIN
    req := Demo_Soap.new_request('initiate',
    'xmlns="http://xmlns.oracle.com/HelloWorld"');
    Demo_Soap.add_parameter(req, 'HelloWorldProcessRequest', 'xsd:string', zipcode);
    resp := Demo_Soap.invoke(req,
    'http://nooslux037t.gl.2wglobal.com:7777/BPELConsole/Dev/displayProcess.jsp?processId=HelloWorld',
    'http://xmlns.oracle.com/HelloWorld');
    END;
    Please help me in knowing what value i should pass for the
    1. New_request procedure
    2. Add_parameter procedure
    3. Invoke procedure.
    The HelloWorld is same as the example in the BPEL Tutorial Session 1.
    Thanks for your time.

  • BPEL process as web service data control

    Hi,
    I am trying to invoke a synchronous BPEL process from a jspx page. I have configured my BPEL process as web service data control object and
    dropped it on my jspx as a button. But after dropping it as a button i observe that it is expecting three parameters.
    I have attached the .xsd file used in the BPEL process and the screen shot of the parameter window of JDEV.
    Here if you can see, i have a heirarchy of data. I have customerType which has orderType , which further has lineType.
    Can somebody help me , how do i provide data to this process i.e in the parameter fields., so that it is in accordance with my .xsd of the BPEL process.
    -thanks,
    lavanya.
    <schema xmlns="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.globalcompany.com/ns/sales"
    xmlns:po="http://www.globalcompany.com/ns/sales"
    elementFormDefault="qualified">
    <element name="Orders" type="po:OrderType"/>
    <element name="OrchestrationCustomers" type="po:OrchestrationCustomersType"/>
    <complexType name="CustomerType">
    <sequence>
    <element name="CustomerName" type="string"/>
    <element name="Location" type="string"/>
    </sequence>
    </complexType>
    <complexType name="LineItemType">
    <sequence>
    <element name="ProductName" type="string"/>
    <element name="itemType" type="string"/>
    <element name="price" type="decimal"/>
    <element name="Quantity" type="decimal"/>
    </sequence>
    </complexType>
    <complexType name="OrderType">
    <sequence>
    <element name="Customer" type="po:CustomerType" minOccurs="0" maxOccurs="unbounded"/>
    <element name="LineItem" type="po:LineItemType" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
    </complexType>
    <complexType name="OrchestrationCustomersType">
    <sequence>
    <element name="CustomerNumber" type="int"/>
    <element name="CustomerName" type="string"/>
    <element name="OrderHeader" type="po:OrderHeaderType" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
    </complexType>
    <complexType name="OrderHeaderType">
    <sequence>
    <element name="CustomerNumber" type="int"/>
    <element name="HeaderId" type="int"/>
    <element name="OrderNumber" type="string"/>
    <element name="OrderStatus" type="string"/>
    <element name="OrchestrationLineItem" type="po:OrchestrationLineItemType" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
    </complexType>
    <complexType name="OrchestrationLineItemType">
    <sequence>
    <element name="HeaderId" type="int"/>
    <element name="LineNumber" type="int"/>
    <element name="LineId" type="int"/>
    <element name="ItemName" type="string"/>
    <element name="price" type="decimal"/>
    <element name="Quantity" type="decimal"/>
    <element name="LineStatus" type="string"/>
    </sequence>
    </complexType>
    </schema>

    Every BPEL process is an another web service. Go and grep WSDL of the BPEL process and call it.

  • Passing complex object from JavaScript to Flex

    Is it possible to call a Flex function (defined with ExternalInterface.addCallback) and pass a complex object from Javascript?  The properties of the object are all simple types, but the object itself is an array of objects.  For example:
    <script type="text/javascript">
    var arrayOfObj = [ { one: "one", two: 2, three: "blah" }, { one: "xyz", two: "abc", three: 3.141 } ];
    callSomeFunctionInFlex(arrayOfObj);
    </script>
    What would I do on the Flex side to make this happen?

    Complex object passing works as expected in Blazeds. 
    There are certain cases where you need to write custom bean proxy classes to marshall an object, but your case is very simple and will not require it.
    Make sure that you set the full java package and class name in your remote alias statement on your client value object.  The class has to be fully qualified.  The AS value object also needs the correct import of the nested value object or you will get a compile error.
    Make sure that the blazeds server has the full class path set to your java objects.
    To debug, you can turn on Blazeds logging in the services-config.xml file like this:
       <logging>
            <!-- You may also use flex.messaging.log.ServletLogTarget -->
            <target class="flex.messaging.log.ConsoleTarget" level="DEBUG">
                <properties>
                    <prefix>[BlazeDS]</prefix>
                    <includeDate>false</includeDate>
                    <includeTime>false</includeTime>
                    <includeLevel>true</includeLevel>
                    <includeCategory>false</includeCategory>
                </properties>
            </target>
        </logging>

  • Complex object as parameter from BPEL PM to Web Service

    Hello,
    I'm having a problem with being able to invoke a method on my web service from BPEL PM. It's a 'create' method, so I'm sending a complex object as the input parameter of the method.
    I'm encountering the same kind of problems I have at different stages in the project I'm on: SOA works really well as long as you don't use complex objects. As soon as you do, SimpleDeserializer exceptions seem to be thrown all over the place. In this case, the error I'm getting is:
    <remoteFault xmlns="http://schemas.oracle.com/bpel/extension">
    <part name="code">
    <code>Server.userException</code>
    </part>
    <part name="summary">
    <summary>when invoking endpointAddress 'http://covarm.tvu.ac.uk/validationEvent/services/validationEventSOAP', org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.</summary>
    </part>
    <part name="detail">
    <detail>AxisFault faultCode: {http://xml.apache.org/axis/}Server.userException faultSubcode: faultString: org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize. faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize. at org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDeserializer.java:188) at org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:893) at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:200) at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:684) at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:207) at org.apache.axis.message.RPCElement.getParams(RPCElement.java:265) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:190) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:276) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:156) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:126) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:437) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:316) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:701) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:335) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:744) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:674) at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:866) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Unknown Source)</detail>
    </part>
    </remoteFault>
    The WSDL is at:
    http://covarm.tvu.ac.uk/validationEvent/wsdl/validationEventSOAP.wsdl
    I'm invoking the 'createEvent' method. I know the service works okay because I've tested it with Rational Software Architect and Eclipse's Web Services Explorer, and also with standalone code and JUnit tests.
    The problem seems to be getting the mapping from BPEL PM to the Web Service. I'm sending the object as a message type that's defined in the WSDL of the service:
    <xsd:element name="createEventRequest" type="tns:event" />
    - <xsd:complexType name="event">
    - <xsd:sequence>
    <xsd:element name="event-detail" type="tns:event-detail" />
    <xsd:element name="proposed-dates" type="tns:proposed-dates" />
    <xsd:element name="panel" type="tns:panel" />
    <xsd:element name="development-team" type="tns:development-team" />
    <xsd:element name="minute" type="xsd:string" />
    <xsd:element name="feedback-list" type="tns:feedback-list" />
    </xsd:sequence>
    </xsd:complexType>
    Is this something that's
    a) fixable?
    b) workaroundable?
    c) a known issue?
    Thanks,
    Dan

    Before I start crying at my own impotence, how can I configure the bpel.xml file (for obtunnel_ when it looks like this?
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <BPELSuitcase>
    <BPELProcess id="RunValidationEvent" src="RunValidationEvent.bpel">
    <partnerLinkBindings>
    <partnerLinkBinding name="client">
    <property name="wsdlLocation">RunValidationEvent.wsdl</property>
    </partnerLinkBinding>
    <partnerLinkBinding name="validationEvent">
    <property name="wsdlLocation">validationEventSOAPRef.wsdl</property>
    </partnerLinkBinding>
    <partnerLinkBinding name="notification">
    <property name="wsdlLocation">notificationSOAPRef.wsdl</property>
    </partnerLinkBinding>
    <partnerLinkBinding name="TaskManagerService">
    <property name="wsdlLocation">TaskManagerService.wsdl</property>
    <property name="wsdlRuntimeLocation">${domain_url}/TaskActionHandler/TaskManagerService.wsdl</property>
    </partnerLinkBinding>
    <partnerLinkBinding name="TaskRoutingService">
    <property name="wsdlLocation">TaskRoutingService.wsdl</property>
    <property name="wsdlRuntimeLocation">${domain_url}/TaskActionHandler/TaskRoutingService.wsdl</property>
    </partnerLinkBinding>
    <partnerLinkBinding name="TaskActionHandler">
    <property name="wsdlLocation">TaskActionHandler.wsdl</property>
    <property name="wsdlRuntimeLocation">${domain_url}/TaskActionHandler/TaskActionHandler?wsdl</property>
    </partnerLinkBinding>
    <partnerLinkBinding name="IdentityService">
    <property name="wsdlLocation">LocalIdentityService.wsdl</property>
    </partnerLinkBinding>
    <partnerLinkBinding name="processParticipant">
    <property name="wsdlLocation">processParticipantSOAPRef.wsdl</property>
    </partnerLinkBinding>
    </partnerLinkBindings>
    <activationAgents>
    <activationAgent className="oracle.tip.pc.services.hw.task.impl.TaskActivationAgent" partnerLink="TaskManagerService"/>
    </activationAgents>
    </BPELProcess>
    </BPELSuitcase>
    Or is it that I'm using local wsdl refs when I should be defining a partner likk in my web service wsdl?

  • Calling REST Services that accept JSON objects from BPEL Process

    Hi,
    I do have a requirement of calling RESTful service from the BPEL process (SOA Suite 11.1.1.5). The RESTful service accepts the payload as JSON object.
    I have gone through the documentation of HTTP binding through which we can call RESTful services from BPEL. But the payload option is coming as only XML.
    So just wondering whether BPEL has out-of-the box support for JSON object payloads when calling REST service? Please let me know if you have any pointers on this.
    Thanks & Regards
    S

    Hi Vijay,
    Thanks for the links Vijay.
    Went through the links and the documentation. From that i could see the only way is coming up with Java based proxy which takes care of XML to JSON conversion and calling the REST based service. This would actually need a java developer now :)
    Regards
    Siva

  • About map a bpel process to web service?

    hi:
    Which activity in bpel should be exposed as a service to invoker?I always think they are receive and onMessage.But,in oracle PM,it looks not so.In oracle PM a asyn process exposed two services,one init the instance(begin receive),one is calback.To my understanding,the callback service should implement by invoker,why not so?
    thanks

    Thanks for the quick reply.Actually the web service is already deployed on the server.What I want to do is use existing wsdl file of the deployed web service and invoke the method of the same using oracle PM.
    If I remove element which uses apachesoap:Map type it just works fine also I am getting the complex object returned by the web service method.But when I try to set appDataDef which is of type apachesoap:Map(Axis conversion for java.util.Map and it uses namespace xmlns:apachesoap="http://xml.apache.org/xml-soap") I am getting the error.
    Can you give me some direction to use this exising wsdl file to set map object or it is not possible.

  • Unique rollback in a BPEL process using web services

    We are a cellular communication company using Oracle DB (10g) and Oracle Forms to run our business applications (customer care and the like). We have planned a system migration using the SOA approach with the latest release of Oracle BPEL Suite (business logic), Oracle ADF BC (presentation level), Oracle OAS (application server) and JDeveloper (application development IDE).
    Within our current applications we have processes that perform several tasks (inserts, updates and/or deletes on the same DB) as part of one atomic DB transaction. Using the SOA approach we&rsquo;ve deemed those tasks as being &lsquo;services&rsquo; that we, let&rsquo;s say for the sake of argument, could implement either as web services (so as to be published for reuse) or as stored procedures encapsulated via DB adapters (BPEL lexicon).
    Our biggest challenge, and hence our question to the SOA world, is how to attain that same unique transaction. We understand that there is no one perfect approach, for the &lsquo;solution&rsquo; depends on too many factors and choices; what we&rsquo;d like to know are past experiences people had or, at best, what do people consider what the best practices in the industry are regarding this matter.
    <strong><u>Approach A:</u></strong> all services are implemented as DB adapters (stored procedures and the like).
    <strong><u>PROS</u><u>:</u></strong> one single DB rollback should any service fail to execute properly and so undo all changes made so far.
    <u><strong>CONS:</strong></u> highly coupled, non-visible components (via UDDI); impossibility to manage, control and audit (via WS Manager) components; weak/poor SOA Governance.
    <u><strong>Approach B:</strong></u> all services are implemented as web services.
    <u><strong>PROS:</strong></u> loosely coupled, self-contained, and web accessible visible components (via UDDI) besides the ease to manage, control and audit (via WS Manager); strong SOA Governance.
    <u><strong>CONS:</strong></u> since each web service is a &lsquo;different&rsquo; transaction with its own &lsquo;commit&rsquo;, a unique rollback transaction for the whole process will not be possible should a WS fail, for previous WSs will have already committed their data changes before doing the rollback.
    <u><strong>Approach C:</strong></u> services implemented as a mix of web services and DB Adapters.
    <strong><u>PROS:</u></strong> those of Approach B for web services.
    <strong><u>CONS:</u></strong> those of Approach A (DB adapters) + those of Approach B (web services).
    <hr />
    So, the 64,000 dollar question is how to attain a single transaction when you have web services as part of your process? Do we need to &rsquo;build/create&rsquo; a schema/functionality similar to the &lsquo;DB-undo-segment&rsquo; in order to obtain a single rollback transaction for the whole process or does the BPEL COMPENSATE delivers this functionality somehow?
    Are we not seeing the obvious? Are we not seeing the forest because we&rsquo;re looking at a tree? Please keep in mind that we are using Oracle BPEL.
    Thanks a bunch,
    --Sergio                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    Hi Marinus,
    you are absolutely right and not missing anything. OWSM does not free you from taking additional measures to block direct interaction with the unsecure WebService from not "authorized" clients. You must restrict the http response to the OWSM host only (either in the Apache or the OC4J configuration). See the related documentation.
    --olaf                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Passing HTTP Headers from BPEL to a RESTFul service in SOA 11g PS2.

    Hi All,
    We have the following requirement.
    We need to pass the following headers to RESTFul service.
    x_invensys_wss_username = "Some UserName"
    x_invensys_wss_password = "Some Password".
    I tried to first pass username and password properties by following below post.
    Attach Http headers in BPEL Process
    Specifically below steps..
    Hi,
    If you are talking about how to invoke a secured webservice...please follow this...
    After creating the reference for your secured webservice in your composite, right click on the composite and say configure web service policies...
    Add the security policy named "oracle/wss_http_token_client_policy"
    And also, for the reference, create two binding properties
    1. oracle.webservices.auth.username
    2. oracle.webservices.auth.password
    For the above two properties, provide the appropriate values.....
    Please test the same after making this changes and let me know....
    Thanks,
    Narsing Pumandla
    ======================================================
    Somehow i don't see the headers getting added to the call.
    The service i am calling don't really need these headers.But the URL we will be calling shortly for the real application need them.
    Can someone let me know whether this SOA version supports this or not.?
    If yes , Then what is the best way to solve this issue.[i.e Able to send hardcoded values and also user specified values.]
    Thanks,
    Sid.

    I am using this URL : api.geonames.org/postalCodeSearch?postalcode=90110&username=siddhardha
    I see below message in audit trail.Not sure why the headers are not visible.
    Am i missing something which is very fundamental.?
    <messages>
    <Rest_InputVariable>
    <part name="Input">
    <Input>
    <postalcode>90110</postalcode>
    <username>Siddhardha</username>
    </Input>
    </part>
    </Rest_InputVariable>
    <Rest_OutputVariable>
    <part name="geonames">
    <geonames>
    .....results.............
    </geonames>
    </part>
    </Rest_OutputVariable>
    </messages>
    Edited by: Siddhardha M on Jul 19, 2012 5:44 AM

  • Bind the output data (Xml) from BPEL process to ADF SelectOneChoice Control

    Hello,
    My requirement is to invoke a BPEL process from ADF page and display returned results in a select one choice (drop down box).
    I have created a Data Control for the BPEL process through Web service data control and tried to invoke the BPEL process. I could see from the BPEL console that BPEL process is getting invoked. But the ADF doesn't bind any of the output to Select one choice.
    It doesn't even show any error.
    Can you plz help me how to bind the output of the BPEL process to ADF SelectOneChoice control.
    The Xml Which I recieve from BPEL process is
    <outputVariable><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload"><DBConnectDemoProcessResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/DBConnectDemo">
    <StatusTrans xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/top/DBSelect">
    <transId>1</transId>
    <fromStatus>Open</fromStatus>
    <toStatus>Assigned</toStatus>
    </StatusTrans>
    <StatusTrans xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/top/DBSelect">
    <transId>2</transId>
    <fromStatus>Open</fromStatus>
    <toStatus>Pending</toStatus>
    </StatusTrans>
    <StatusTrans xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/top/DBSelect">
    <transId>3</transId>
    <fromStatus>Open</fromStatus>
    <toStatus>Closed</toStatus>
    </StatusTrans>
    <StatusTrans xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/top/DBSelect">
    <transId>4</transId>
    <fromStatus>Open</fromStatus>
    <toStatus>Cancelled</toStatus>
    </StatusTrans>
    </DBConnectDemoProcessResponse>
    </part></outputVariable>
    And the toStatus node values viz, Assigned, Pending, Closed, Cancelled should get binded to the SelectOneChoice control
    Waiting for your valuable inputs,
    Regards,
    babloo.

    I have been still trying for the solution. I have modified the XSD created by the jdeveloper to,
    <schema attributeFormDefault="unqualified"
         elementFormDefault="qualified"
         targetNamespace="http://xmlns.oracle.com/StateTransitions"
         xmlns="http://www.w3.org/2001/XMLSchema">
         <element name="StateTransitionsProcessRequest">
              <complexType>
                   <sequence>
                   <element name="input" type="string"/>
                   </sequence>
              </complexType>
         </element>
         <element name="StateTransitionsProcessResponse">
              <complexType>
                   <sequence maxOccurs="unbounded">
    <element name="stateChanges">
    <complexType>
    <sequence>
    <element name="fromState" type="string" />
    <element name="toState" type = "string" />
    </sequence>
    </complexType>
    </element>
    </sequence>
              </complexType>
         </element>
    </schema>
    And I have given this XSD url while creating the Web Service Data Control by deploying it into the Oracle App server.
    So, I can see the tree structure of "Return" as "StateTransitionsProcessResponse->StateChanges->toState,fromState"
    I have binded the toState field of the Data Control to the SelectOneChoice ADF control in a jspx page by using List binding editor.
    I have selected,
    Base data source as "Variables" (Currently I don't need to update any table),
    List Data source as "process: getStateTransitions.process.StateTransitionsProcessResponse.stateChanges" (Web Service Data Control)
    Base Data source attribute as "process_input"
    List Data Source Attribute as "toState"
    I can initiate the web service (BPEL process) by providing the necessary input value like 'Open' or 'Pending' or 'Assigned' but the SelectOneChoice control doesn't populate with any values.
    Waiting for valuable inputs!
    Thanks and Regards,
    babloo.

  • URGENT: Error while invoking soap-based web service from BPEL process

    I am trying to invoke a soap-based web service deployed in a different OC4J container but on the same iAS middle tier install as the BPEL server. The deployment is successful. I am running 10.1.2 BPEL server.
    But invoking a process throws the following error.
    <remoteFault xmlns="http://schemas.oracle.com/bpel/extension">
    <part name="summary">
    <summary>when invoking locally the endpoint 'http://stadd53.us.oracle.com:7779/idm/ProvService/cps', ; nested exception is: ORABPEL-02052 Cannot lookup BPEL domain. The BPEL domain "ProvService" cannot be found; the domain may not have initialized properly. Please verify that the BPEL domain loader has a valid set of initialization properties in the application properties file.</summary>
    </part>
    <part name="detail">
    <detail>ORABPEL-02052 Cannot lookup BPEL domain. The BPEL domain "ProvService" cannot be found; the domain may not have initialized properly. Please verify that the BPEL domain loader has a valid set of initialization properties in the application properties file.</detail>
    </part>
    </remoteFault>
    Any ideas on what the problem might be ?

    Sandor,
    Thanks. Your suggestion of turning off optSoapShortcut worked. So does that mean that by default remote web services cannot be invoked from BPEL process by SOAP - unless this configuration change is done ?

  • Error while invoking the WSDL service of EBS from BPEL process

    Hi Team,
    when we are calling webservice client to call WSDL service which is published in Oracle EBS integrated SOA Gateway from BPEL process.
    After invoking, we are getting the below error
    <bpelFault><faultType>0</faultType><remoteFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="summary"><summary>FND_SOA_SERVICE_EXECUTION_ERR:oracle.apps.fnd.soa.util.SOAException: ServiceExecutionError: Error while executing the service Exception returned from JCA Service Runtime. Exception returned from JCA Service Runtime. null :Please see service monitor logs for full error trace</summary></part><part name="detail"><detail>oracle.j2ee.ws.client.jaxws.JRFSOAPFaultException: Client received SOAP Fault from server : FND_SOA_SERVICE_EXECUTION_ERR:oracle.apps.fnd.soa.util.SOAException: ServiceExecutionError: Error while executing the service Exception returned from JCA Service Runtime. Exception returned from JCA Service Runtime. null :Please see service monitor logs for full error trace</detail></part><part name="code"><code>{http://schemas.xmlsoap.org/soap/envelope/}Server</code></part></remoteFault></bpelFault>
    API Name : OE_ORDER_PUB.PROCESS_ORDER
    could you please let me know the exact problem and provide the solution.
    Thanks
    Phani Ch.

    Hi Phani,
    Are you able to reproduce issue as below:
    1. Login to Application as sysadmin.
    2. Navigate to Intergrated SOA Gateway > Integration Repository.
    3. Click on search on right hand side of the page.
    4. In the Internal Name type "FND_USER_PKG" and click Go.
    5. Click on the User link.
    6. Under the "Web Service - SOA Provider", click in the "View WSDL". Copy the complete URL "http://test:8003/webservices/SOAProvider/plsql/fnd_user_pkg/?wsdl"
    7. Open the soapUI.
    8. Click File > new soapUI Project.
    9. Test the web service.
    If yes,
    I think you might be need to execute a patch:
    solution:
    To implement the solution, please execute the following steps:
    1. Download and review the readme and pre-requisites for iAS Patch 18855074.
    Note: Above Merge Label Request (MLR) is build for EBS 12.1.3 having OC4J 10.1.3.5.
    2. Enable the profile option "EBS Adapter for BPEL, Function Security Enabled".
    a. Login as SYSADMIN user and Navigate to System >Profile  and Search for "EBS Adapter for BPEL, Function Security Enabled" (Internal name :EBS_ADAPTER_FUNCTION_SEC_ENABLED)
    b. Set the Value to 'Y' at SITE level . This means  function security feature is enabled and all API calls for PL/SQL APIs, Oracle e-Commerce Gateway, and concurrent programs will be checked for user security before they are invoked.
    3. Retest the issue by Generating and Deploying the required package.
    4. Migrate the solution as appropriate to other environments.
    Thanks
    Ranjan

  • I tried to invoke WS from BPEL process

    I tried to invoke WS from BPEL process. And error occurred when I deployed the process.
    Error:
    [ERROR ORABPEL-10902]: COMPILING FAILED.
    [NOTE]: IN "bpel.xml", XML syntax analysis failed. The reason is "Part Element not defined".
    In "http://192.168.0.188:8989/newTest-newTest-context-root/MyorderListWS?wsdl" , Message Part Element "{http://www.w3.org/2001/XMLSchema}any" is not defined in any SCHEMA&#12290;
    Please make sure to spell the definite name of the ELEMENT correctly and import WSDL completely.
    wsdl file(IMyorderListWS.wsdl)
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <!--Generated by the Oracle JDeveloper 10g Web Services WSDL Generator-->
    <!--Date Created: Thu Sep 29 17:00:15 CST 2005-->
    <definitions
    name="MyorderListWS"
    targetNamespace="http://zbht/com/orderList.wsdl"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:tns="http://zbht/com/orderList.wsdl"
    xmlns:ns1="http://zbht.com/IMyorderListWS.xsd">
    <types>
    <schema
    targetNamespace="http://zbht.com/IMyorderListWS.xsd"
    xmlns="http://www.w3.org/2001/XMLSchema"
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"/>
    </types>
    <message name="getResInfo0Request">
    <part name="custID" type="xsd:string"/>
    <part name="prodctID" type="xsd:string"/>
    </message>
    <message name="getResInfo0Response">
    <part name="return" element="xsd:any"/>
    </message>
    <portType name="orderListPortType">
    <operation name="getResInfo">
    <input name="getResInfo0Request" message="tns:getResInfo0Request"/>
    <output name="getResInfo0Response" message="tns:getResInfo0Response"/>
    </operation>
    </portType>
    <binding name="orderListBinding" type="tns:orderListPortType">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="getResInfo">
    <soap:operation soapAction="" style="rpc"/>
    <input name="getResInfo0Request">
    <soap:body use="encoded" namespace="MyorderListWS" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    </input>
    <output name="getResInfo0Response">
    <soap:body use="literal" namespace="MyorderListWS"/>
    </output>
    </operation>
    </binding>
    <service name="MyorderListWS">
    <port name="orderListPort" binding="tns:orderListBinding">
    <soap:address location="http://192.168.0.188:8989/newTest-newTest-context-root/MyorderListWS"/>
    </port>
    </service>
    </definitions>
    /*****************************************************************************************/

    In your wsdl ...
    instead of
    <part name="custID" type="xsd:string"/>
    try
    <part name="custID" element="xsd:string"/>
    the part is usually an element such as
    <element name="BPELProcess1ProcessResponse">
    <complexType>
    <sequence>
    <element name="result" type="string"/>
    </sequence>
    </complexType>
    </element>
    hth clemens

  • Invoking Xai Service from  BPEL process (Error 411--Length Required)

    Hi Friends,
    I am trying to invoke xai inbound service webserive i.e WSDL from BPEL process, when i am testing the request i am getting the following error
    oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException: oracle.fabric.common.FabricInvocationException: Unable to access the following endpoint(s): http://190.12.19.100:6500/spl/XAIApp/xaiserver/CMMBC
    when i open the above end point url in the browser:
    Error 411--Length Required
    From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
    10.4.12 411 Length Required
    The server refuses to accept the request without a defined Content- Length. The client MAY repeat the request if it adds a valid Content-Length header field containing the length of the message-body in the request message.
    pls help me out
    thanks and regards
    sivaram
    Edited by: sivaram on Apr 21, 2011 6:56 AM

    Yes we have got the same error while invoking from SOAP UI.
    But wsdl alone is opening through browser.
    But when we try opening the endpoint url we are getting the above error.
    Please help!

  • Fault information from bpel process when exception happens

    How to extract all the fault information from bpel process when exception happens?
    Are there any other methods other than "ora:getFaultName(), ora:getFaultAsString()"
    When I use "ora:getFaultName(), ora:getFaultAsString()", I get the below message,so I am wondering whether
    I can get any more information about the exception as mentioned below - "detailed root cause described in the exception message" -> how do I get it?
    Check the detailed root cause described in the exception message text and verify that the XPath query is correct.

    Hi,
    As far as I know, it's not possible to get the exception message with a catch all. You need to catch each exception separately, and the you will be able to get each message.
    Regards
    Gustavo

Maybe you are looking for

  • No sound after I export a video in premiere elements 12

    Alright I am doing a walkthrough on a video game so I am deleting audio out of my clips and adding in narration. While I can hear and see my narration just fine in one of my videos, when I export it I hear no narration or sound at all. I have tried a

  • PGP Encryption in FTP Adapter

    Hi All, We need to do FTP some files from remote server and files are to be pgp encrypted or decrypted.Can you please tell is there some way to use pgp encryption in FTP adapter. If yes, please provide some link for documentation. or shall we do ftp

  • IC Webclient: Blank Page

    Hello Friends, In last days, for the first time, we are trying to launch a 2007 IC Webclient application in a machine with SP2. However, when we try to load it and after we choose the profile, we get a blank page. We searched and searched in this for

  • Adding zeros to the external material number

    Hello Friends, I needed your assistance with  a routine in BI 7, Infosource Transformations or in the Infoobject transformations (update Rules). I have data comming from a  flat file without the leading zeros for an infoobject.I need to have the lead

  • Command line method to obtain DNS and proxy info?

    Hello All, I have poked around the man pages but am not making any progress on this. I am looking for a command that would query the network to find a) whether there is a DNS server, and b) if there is, what the domain and IP address is. Similarly, i