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?

Similar Messages

  • 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.

  • How to build complex object to be sent to a RESTful web service?

    Hi,
    I'm working with RESTful web services on J2EE 1.6.
    I create the database, generate the entities and generate the web services.
    I must implement Javascript clients and I don't want to use any open source for that.
    I have a simple example that works just fine. For the database :
    CREATE TABLE Shopper(
    shopperId MEDIUMINT AUTO_INCREMENT PRIMARY KEY,
    firstName VARCHAR(40),
    lastName VARCHAR(40),
    phone VARCHAR(40),
    email VARCHAR(50) NOT NULL,
    receiveEmailNotification ENUM('Y', 'N'),
    index(email)
    I create this xml information with javascript :
    *<shopper>*
    *<email>c</email>*
    *<firstName>c</firstName>*
    *<lastName>c</lastName>*
    *<phone>c</phone>*
    *<receiveEmailNotification>Y</receiveEmailNotification>*
    *</shopper>*
    and it is saved in the database. I have a more complex application with relationships between entites. For this database :
    CREATE TABLE Shopper(
    shopperId MEDIUMINT AUTO_INCREMENT PRIMARY KEY,
    firstName VARCHAR(40),
    lastName VARCHAR(40),
    phone VARCHAR(40),
    email VARCHAR(50) NOT NULL,
    receiveEmailNotification ENUM('Y', 'N'),
    index(email)
    CREATE TABLE Address(
    addressId MEDIUMINT AUTO_INCREMENT PRIMARY KEY,
    street VARCHAR(60),
    streetNo VARCHAR(20),
    postalCode VARCHAR(30),
    city VARCHAR(40),
    country VARCHAR(40),
    otherInfo TEXT,
    shopperId MEDIUMINT NOT NULL,
    foreign key (shopperId) REFERENCES  shopper(shopperId) ON DELETE CASCADE,
    index(shopperId)
    I was expecting that xml information sent from the browser should be:
    *<address>*
    *<city>c</city>*
    *<country>c</country>*
    *<otherInfo>c</otherInfo>*
    *<postalCode>c</postalCode>*
    *<street>c</street>*
    *<streetNo>c</streetNo>*
    *<shopper>*
    *<email>c</email>*
    *<firstName>c</firstName>*
    *<lastName>c</lastName>*
    *<phone>c</phone>*
    *<receiveEmailNotification>Y</receiveEmailNotification>*
    *</shopper>*
    *</address>*
    but I keep on getting errors.
    I want to send one XML structure that will be stored in two tables according to the foreign key relation.
    Does the RESTful web services code generated by Netbeans or Eclipse support this?
    Is my XML structure not built correctly?

    Kevin,
    My object base class is Abstract and class I am using in Flex 3 is class inheriting abstract class. But when calling webservice Flex creating soap message of base class and I am getting error in .Net web services that "Can not create instance of Abstract class".
    Below is the soap message difference calling same WCF method from .Net and Flex. For example Constraint is the base class and JobConstraint is the class which inherit Constraint class. But flex send message forming only Constraint while .Net soap is specifying i:type="JobConstraint".
    Part of soap message Calling from .Net 

    Constraints>< 
    Constraint i:type="JobConstraint"><Position 
    >true</Position>< 
    Rank>2</Rank>< 
    Requirement>true</Requirement></ 
    Constraint></ 
    Constraints> 
    Part of Soap message calling from Flex 3
    <ns0:Constraints>
    <ns0:Constraint>
    <ns0:Position>true</ns0:Position>
    <ns0:Rank>2</ns0:Rank>
    <ns0:Requirement>true</ns0:Requirement>
    </ns0:Constraint>
    </ns0:Constraints>

  • 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.

  • Issue: BPEL invoking Axis web service

    Hi
    We are calling a Axis web service from BPEL.. The web service has been defined to be a request only 1 way service. The axis service takes around 3-5 minutes to complete the job( data insertion in DB).. But seems like when BPEL invokes the web service; BPEL thread is waiting (thread is not released) and the BPEL process does not move forward until the web service completes the job....
    Any pointers on how the deal with the issue will be helpful!!
    Thanks

    Hi Lovenish,
    Goto console-> select domain> Configuration->JTA
    Check timeout seconds.
    2. i don't know what kind of partner link you are invoking.
    check composite.xml, is there any property like retry.interval .
    3. ◦SyncMaxWaitTime: The maximum time a request and response operation takes before timing out.
    The maximum time a request/response operation will take before it times out. The default value is 45 seconds.
    Regards,
    Padmanabham

  • Calling a Procedure which has Array of Objects as arguments (from BPEL)

    Hi,
    I wanted to pass multiple records as arguments to a stored procedure from BPEL.
    We created stored procedure which takes array of Objects as arguments. I invoked it from BPEL. It was successfully compiled and deployed.
    At runtime it is throwing following error.
    <bindingFault xmlns="http://schemas.oracle.com/bpel/extension">
    <part name="code">
    <code>17072</code>
    </part>
    <part name="summary">
    <summary>Error binding the value of a parameter. An error occurred when binding the value of parameter ARG in the SCOTT.TESTPACK.TESTPROC API. Cause: java.sql.SQLException: Inserted value too large for column: "sadfsafsad" Check to ensure that the parameter is a valid IN or IN/OUT parameter of the API. Contact oracle support if error is not fixable.</summary>
    </part>
    <part name="detail">
    <detail>Inserted value too large for column: "sadfsafsad"</detail>
    </part>
    </bindingFault>

    I think you from Sierra Atlantic and you using Beta 3. There was a bug in Beta 3 in using arrays, which got fixed in post Beta3. You got to wait till next release.

  • Calling a web service from BPEL using java web methods

    Hello everyone,
    I have an application my BPEL process should connect to. The application which is a web service needs to be called using pre defined web methods defined in java from my bpel process using Jdev 10g. Any suggestions in how I can go about doing that? Please I really need help

    Hi there,
    If you have defined already your partner links to the service you can use the BPEL API to invoke them from RMI. See this blog entry
    http://technology.amis.nl/2006/06/08/oracle-bpel-pm-invoking-a-remote-bpel-service-from-java-using-rmi/
    It'd be also good if you post the question on the bpel forum BPEL
    Thanks,
    JC

  • Parameter names change when generating web service from WSDL

    Hi,
    I have a problem with BEAs web services that I'm hoping someone can help me with.
    I have a
    WSDL file, and from that I want to generate a web service implementation and a
    web service
    client. In the WSDL file, I have a message defined like this:
    <message name="someRequest">
    <part xmlns:partns="http://www.w3.org/2001/XMLSchema" type="partns:base64Binary"
    name="data"/>
    </message>
    I generate the server using the server using the wsdl2service Ant task, I implement
    the necessary classes, and I deploy it. When I access the deployed web service,
    the parameter name has changed, from "data" to "bytes". If I access the WSDL file
    of the deployed web service, it says:
    <message name="someRequest">
    <part xmlns:partns="http://www.w3.org/2001/XMLSchema" type="partns:base64Binary"
    name="bytes"/>
    </message>
    This happens for all parameters, string parameters are renamed to "string", base64Binary
    parameters are renamed to "bytes", etc...
    This poses a problem to me, because if I generate a web service client from the
    original WSDL file, it will not be able to talk to my web service. Is there any
    way of forcing a web service generated from a WSDL file to keep the parameter
    names of the original WSDL file?
    Any help in this is greatly appreciated.
    Regards,
    Petter

    From a quick look of your WSDL, it seams that you are mixing document-literal-bare and document-literal-wrapped flavor of web services. WSA may be able to do a better job at working around this mixed flavors than JDeveloper.
    If you have hand crafted this WSDL, I would recomend that you spend some time looking at the way WSDL are generated, with the java-first mode (or bottom-up), then author the WSDL you need for the final service.
    Here are sample of bare-style :
    <xsd:element name="getPupilAddressResponse" type="xsd:string"/>
    <xsd:element name="getPupilAddressRequest" type="xsd:int"/>
    Wrapped will looks like that:
    <xsd:element name="getSENLevelResponse">
    <xsd:complexType>
    <xsd:sequence maxOccurs="1" minOccurs="1">
    <xsd:element name="LevelDetails" type="tns:SENLevelRecord"/>
    <xsd:element name="RecordCount" type="xsd:int">
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    Hope this helps,
    Eric

  • 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

  • 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                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Getting the Request Object in the EJB published as a Web Service

    Hi experts,
    I have a Portal Service that call a BAPI in a back-end system with the Connector Framework. I have a Portal Component that calls the Portal Service, passing the Locale (request.getLocale()) and the User (request.getUser()) object. It's work fine!
    I need to call the Portal Service by an EJB that is published as a Web Service. The connection between the EJB and Portal Service is ok, but I don't know how to get the Locale and the User object in the EJB to pass to the Portal Service.
    Is possible to get the request object from the HTTP SOAP Request?
    Thanks,
    Gustavo

    Hey Alice!
    The Feature Hashing module is actually a wrapper around
    Vowpal Wabbit's implementation of the murmurhash. Thus, it takes text in, and produces 2^N new features based on the text, where N is the bitsize specified in the module. These features (and not the original text!) should be used during model training.
    The Learner will then keep track of these features behind the scenes.
    When you publish your web service and these features are recomputed for new input text (same N), they are used as the features for scoring.
    Does that make sense?
    Regards,
    AK

  • How to Pass BAPIPWD from Export workflow in Web Services Connector MA

    Hello,
    I need to export users from FIM to SAP using web services connector. I have created Export Work flow and added the values like user name , first name, last name and etc. I couldnt set the value for password because the data type is BAPIPWD. Could you please
    tell me how to create a user in SAP from FIM using Export Workflow and how to pass the password parameter.
    Thanks,
    Nallasivan

    Hi you can add parameters to your FPM application and launch the aplication from POWL action.
    Insder FPM, using FPM parameters you can access these varaibles inside your local webdynpro component.
    Regards
    Ravi

  • Return Data from Oracle using a web service in AXIS - please help

    Hi Forum,
    I am very new to web services and Java tech. and recently I have been assigned to work with technology and I am struggling to learn it and need your help and assistance.
    I am trying to return some data from a an oracle database but I have to do that using a web service and I am using AXIS. For example below is a simple program that returns two columns for the demo EMP table
    import java.sql.*;
    class emp {
    public static void main(String args[])
    throws ClassNotFoundException, SQLException {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    // or you can use:
    // DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott", "tiger");
    Statement stmt = conn.createStatement( );
    ResultSet rset = stmt.executeQuery("select * from emp");
    while(rset.next( )) {
    System.out.println(rset.getString(1));
    System.out.println(rset.getString(2));
    rset.close( );
    stmt.close( );
    conn.close( );
    } but I do not know how to convert this into a web service.
    Please help.
    Thanks in advance.
    Regards,
    Ravi

    The following code returns Document. I will be calling the below function to convert my Resultset to document. In my JWS file i simply call a method with parameters. can a web service method in .jws file return Document type. It shows error will doing so. Please help me.
    public static Document toDocument(ResultSet rs) throws ParserConfigurationException, SQLException
              Document res_doc = null;
              DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
              DocumentBuilder builder = factory.newDocumentBuilder();
              Document doc = builder.newDocument();
              Element results = doc.createElement("Results");
              doc.appendChild(results);
              ResultSetMetaData rsmd = rs.getMetaData();
              int colCount = rsmd.getColumnCount();
              while (rs.next())
              Element row = doc.createElement("Row");
              results.appendChild(row);
              for (int i = 1; i <= colCount; i++)
              String columnName = rsmd.getColumnName(i);
              Object value = rs.getObject(i);
              Element node = doc.createElement(columnName);
              node.appendChild(doc.createTextNode(value.toString()));
              row.appendChild(node);
              return res_doc;
         }

Maybe you are looking for

  • Time Machine or iTunes causes Photoshop CS4 to crash?

    My husband and I both have identical 20" iMacs (see my signature). He uses Photoshop CS4 daily and Photoshop will crash for no apparent reason we can find and he's lost a lot of work over the past couple of months. He saves his work a lot but this sh

  • My email folders are not in alphabetical order like they appear on my email server and my phone.  Sup with that?

    After a certain date, any folder that I create is now appearing at the bottom of my folder list.  The second section of folders is alphabatized, but they appear at the end of the previous folders that are alphabatized.  Anyone else experience this?

  • SAP PM object dependency diagram

    Hi All,          We are working on an SAP PM data migration project. Could anyone help me with the load dependency diagram for SAP PM objects. At least a list of SAP PM objects will be of help. Thanks, Gopi

  • AS3 code to add buffer to .flv

    In AS2, there was a parameter to add buffering to an .flv. In AS3 it appears Adobe has decided to remove that parameter. Is there a line of code to add buffering to an .flv when .flv component is dragged to stage - not added to stage with AS3? I like

  • Thinkpad600 - the 0(OFF) I(ON) error when CDROM is connected

    My friend gave me a Thinkpad 600. Type: 2645350 S/N:55132RW Configuration: CPU Pentium II 233 MHz RAM 288 MB (Internal 32 MB + 128 MB + 128 MB in expansion slots) HDD bay: 5 GB IBM HDD Ultraslim bay: original FDD FRU P/N 05K8874 When I switch on the