Return complex type

Hi, i have a web service that takes two double numbers and returns complex type
@WebService( name="Complex",serviceName="ComplexService")
public class Complex {
    private double real;
    private double img;
@WebMethod(operationName = "add")
    public Complex add(Complex complex) {
        double realResult=real+complex.real;
        double imgResult=img+complex.img;
        return new Complex(realResult,imgResult);
}Can you suggest any ideas how to return this as a string so the client can read it?
Thanks a lot,
Geo

I had the same problem and was never able to solve it. I just gave up and went to static clients. From what I saw here in the forums in the last 4 months, this is a recurring problem that sun has given no solution to.
Hugo

Similar Messages

  • Web Dynpro and CAF (BOs, Application Services, returning Complex Types)

    Hi All,
    I am trying to develop an application using Web Dynpro and CAF for days now and did not get it running.. I need some help here.
    What I am trying to do / have done is the following:
    - Design a Business Object (BO) in CAF
    - Implement an Application Service that has a method called getAllBOs that calls the findAll method of the BO
    - call this method using AWS model or EJB model in Web Dnypro, show the result in a table.
    My getAllBOs returns a set of BOs (Data Type is the Complex Type of my BO in CAF). I was able to design the Application Service so that it returns a collection of BOs (using a Wrapper Comple Type), but I was never able to call the generated Web Service successfully in Web Dynpro. The WebService worked fine when testing it in wsnavigator...
    However, i never got it running.. is there anybody out there who is able to explain what to do to import a AWS model or an EJB model in Werb Dynpro and particularily how to implement the stuff so that it returns a set of BOs successfully...
    Thanks in advance.. Useful help is highly appreciated
    Please note: THIS IS ABOUT Netweaver CE 7.1 - do not post stuff about 7.0!

    Hi,
    You have to return a single object from caf layer to webdynpro layer.
    Since you are returning a list of BOs, create a wrapper in caf which contains the list of your BOs.
    Your application service should return this wrapper.
    Creating Wrapper:
    1. Create a complex data type.
    2. Include your BO as one of the properties in it. and set the cardinality to 0..n.
    In Application service invoke your findAll() of BO and use the returned list to populate the wrapper's BO list.
    Return this wrapper.
    Hope it helps.
    Regards,
    Fazal

  • Returning complex types with arrays (Java / EJB via WSIF)

    Hi all,
    I'm writing some WSIF bindings for existing EJBs, and I've struck a bit of a problem. Basically I've got complex types that contain arrays, and while instances of these types can be passed to the EJBs, return variables typed similarly cause the following fault:
    org.collaxa.thirdparty.apache.wsif.WSIFException: com.collaxa.cube.ws.wsif.providers.ejb.WSIFOperation_EJB@1a372e0 : Could not invoke 'concatString'; nested exception is:
         org.collaxa.thirdparty.apache.wsif.WSIFException: Class 'ejbinterfacetest.StringReturnArray' is not compatible; nested exception is:
         oracle.xml.parser.v2.XMLDOMException: cannot add a node belonging to a different document
         at com.collaxa.cube.ws.wsif.providers.ejb.WSIFOperation_EJB.executeRequestResponseOperation(WSIFOperation_EJB.java:1305)
         at com.collaxa.cube.ws.WSIFInvocationHandler.invoke(WSIFInvocationHandler.java:431)
         at com.collaxa.cube.ws.WSInvocationManager.invoke2(WSInvocationManager.java:416)
    The Java class StringReturnArray is a serializable JavaBean with one property, a String[] called strings. The corresponding complexType (that works when used as a method parameter type) is stringReturnArrayType:
    <complexType name="stringArrayType">
    <sequence>
    <element name="str" type="string" maxOccurs="unbounded" />
    </sequence>
    </complexType>
    <complexType name="stringReturnArrayType">
    <sequence>
    <element name="strings" type="tns:stringArrayType" />
    </sequence>
    </complexType>
    and I've type mapped in the binding with
    <format:typeMap typeName="typens:stringReturnArrayType" formatType="ejbinterfacetest.StringReturnArray" />
    Anyone know why this would be? Is there any way I can get more information out of BPEL or OC4J regarding the fault? (I've already turned the BPEL domain logging to All)
    Cheers,
    Chris.

    Any luck with this? I am running into the same error. Apparently, this is not an issue with Java binding, but when invoking remote EJBs, we run into this. I am running 10.1.3.1 and the error is:
    <fault>
    <bindingFault xmlns="http://schemas.oracle.com/bpel/extension">
    <part name="summary">
    <summary>
    com.collaxa.cube.ws.wsif.providers.ejb.WSIFOperation_EJB@e26dbf : Could not invoke 'getIdentityInfo'; nested exception is:
         org.collaxa.thirdparty.apache.wsif.WSIFException: Class 'ca.bc.gov.pssg.c3.webservices.identitymanagement.Identity' is not compatible; nested exception is:
         oracle.xml.parser.v2.XMLDOMException: cannot add a node belonging to a different document
    </summary>
    </part>
    <part name="detail">
    <detail>
    org.collaxa.thirdparty.apache.wsif.WSIFException: Class 'ca.bc.gov.pssg.c3.webservices.identitymanagement.Identity' is not compatible; nested exception is:
         oracle.xml.parser.v2.XMLDOMException: cannot add a node belonging to a different document
    </detail>
    </part>
    </bindingFault>
    </fault

  • Dynamic client return complex type

    How do write a dynamic client that returns a complex data type?

    I had the same problem and was never able to solve it. I just gave up and went to static clients. From what I saw here in the forums in the last 4 months, this is a recurring problem that sun has given no solution to.
    Hugo

  • Complex type return.

    Hi guys;
    I have this simple class
    //This class is implemented as webservice which return complex type of World.
    public class HelloWorld {
         public World sayHelloWorld(World world,String countryCode) {
              if(new World().isValidWorld(world))return world;
              else return null;          
    public class World {
         private String world1 = "us";
         private String world2 = "uk";
         public boolean isValidWorld(World world){
              System.out.println("client passed: world1 "+world.getWorld1()+" world2: "+world.getWorld2());
              if(world.getWorld1().equalsIgnoreCase(this.getWorld1()) && world.getWorld2().equalsIgnoreCase(this.getWorld2()))return true;
              else
                   return false;
         //getter and setter for world1 and world2
    Now in weblogic test page.I have
    parameter as world ,type as World and value as follows:
    <world xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:n1="java:com.util"
    xsi:type="n1:World">
    <world1 href="#ID_2">
    </world1>
    <world2 href="#ID_2">
    </world2>
    <xsd:string xsi:type="xsd:string"
    id="ID_2">sample string</xsd:string>
    </world>
    and for next i have parameter as string,type as string and value as text box to input.
    But i don't understand or don't know why there is only one input value to put ie. <xsd:string xsi:type="xsd:string"
    id="ID_2">sample string</xsd:string> .there should be 2 to input world1 and world2.and now if i input value abc instead of sample string it will pass
    the same value(abc) for both world1 and world2 to server.Is that i did sth. wrong in build or there is more.I shall appreciate if somebody
    has answer onto this.Basically for complex type i need like this automatically..
    <world xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:n1="java:com.util"
    xsi:type="n1:World">
    <world1 href="#ID_1">
    </world1>
    <world2 href="#ID_2">
    </world2>
    <xsd:string xsi:type="xsd:string"
    id="ID_1">sample string</xsd:string>
    <xsd:string xsi:type="xsd:string"
    id="ID_2">sample string</xsd:string>
    </world>
    any suggestion??

    Hi there,
    Can you explain what you mean by this :
    I have an entry like :
    <xs:element name="retrieveDetailsResponse">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element minOccurs="0" name="return" nillable="true" type="ax21:Details"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>Do you mean changing the name element to retrieveDetailsReturn - i.e
    <xs:element minOccurs="0" name="retrieveDetailsReturn" nillable="true" type="ax21:Details"/>or just
    <xs:element minOccurs="0" name="retrieveDetails" nillable="true" type="ax21:Details"/>I can't get any of these to work....
    Edited by: uefa_celt on Feb 27, 2009 8:23 AM

  • Web Services Complex Types

    I am developing a Web Service in Netbeans 5.5 running on Sun Application Server 9.0UR1. The web service and client work fine if I use simple types like "String" as a return type. However, I need to return complex types, such as a user defined class. I setup the web service to define a user defined class, SimpleBean, and I setup my client to accept it. The client successfully connects and gets back the object but I do not have access to the any of the getters/setters in the object. How do I setup it up so that I get access to the returned object's getters/setters?
    Luke Mauldin

    JAXB can be used to solve your problem. Rather than trying return your own types directly use JAXB to explain your return types in a schema;
    Example:
    public class MyType {
    int id=-1;
    int noOfObjects=0;
    String something;
    @XmlElement(nillable = true) //Java annotation to return list
    List<String> participant;
    public Interaction() {
    participant= new ArrayList<String>();
    something=�hi�;
    public List<String> get() { return participant; }
    public void set(String newpart) {participant.add(newpart);}
    public String getCrux() { return �OK�; }
    public void setCrux(String something) { this. something = something; }
    @XmlAttribute
    public int getId() { return 0; }
    public void setId(int id) {  }
    @XmlAttribute
    public int getNoOfObjects() { return noOfObjects; }
    public void setNoOfObjects(int id) { this.noOfObjects =noOfObjects; }
    @WebService()
    public class MyService {
    @WebMethod
    public Results MyType (@WebParam(name = "id") String id) {
    return new MyType();
    When defining your own class make sure you have "get" and "set" methods for all types.(JAXB needs this)

  • How to use Adaptive WebService Model with CAF WebService and Complex Type

    Hi All,
    I am trying to use the Adaptive Web Service Model and call a WebService generated by the CAF. The return type of the WebService is a Complex Type.. I receive an exception when trying to instantiate the Model Node.
    Does anybody know how to use the Adpative Web Service Model with CAF WebServices and Complex Types as return type?
    Help is appreciated..
    Thanks, Johannes

    Thanks Mukesh.
    It is not possible to apply the Service Controller Template on Enterprise Java Bean Models as described in the Document. When I try to aply the template on the EJB Model, NWDS says: Only Webservice Models and RFC Models are supported...???
    I did not find any information about how to return complex types in AWS.. in this document???
    Is there such information available? Has anybody ever done that? There must be a way to do that.. Is is the standard approach, isn't it...? Please help me out there.. I need to get this running..
    Thanks, Johannes

  • Assign error with complex type return message

    Dear all,
    I have an axis web service with complex type return message. When I invoke the web service, and try to assign one element of the result to other variable, it fails with following error message(BPEL Fault:{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure{}
    The invoking web service and assignment BPEL source is as follows:
    <invoke name="registerConference" partnerLink="conferenceCenter" portType="tns:ConfArrangementPort" operation="Conference_Register" inputVariable="registerInput" outputVariable="registerOutput"/>
    <copy>
    <from variable="registerOutput" part="Conference_RegisterReturn" query="/Conference_RegisterReturn/confcity"></from>
    <to variable="bookHotelInput" part="si" query="/si/city"/>
    </copy>
    I tunneled the response SOAP message:
    ==== Response ====
    HTTP/1.1 200 OK
    Content-Type: text/xml; charset=utf-8
    Date: Sun, 31 Oct 2004 08:28:27 GMT
    Server: Apache Coyote/1.0
    Connection: close
    <?xml version="1.0" encoding="UTF-8"?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
    <ns1:Conference_RegisterResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://conference.sjtu.edu">
    <ns1:Conference_RegisterReturn href="#id0"/>
    </ns1:Conference_RegisterResponse>
    <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:ConfInfo" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="http://conference.sjtu.edu">
    <confcity xsi:type="xsd:string">star</confcity>
    <confend xsi:type="xsd:string">20041120</confend>
    <confstart xsi:type="xsd:string">20041116</confstart>
    </multiRef>
    </soapenv:Body>
    </soapenv:Envelope>
    ==============
    However, when i check the invoke activity audit trail, it return the following info:
    <messages>
    <registerInput>
    <part xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" name="gi">
    <gi xmlns="http://conference.sjtu.edu">
    <attendeename xmlns="">ss</attendeename>
    <confname xmlns="">hh</confname>
    </gi>
    </part>
    </registerInput>
    <registerOutput>
    <part xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" name="Conference_RegisterReturn">
    <ns1:Conference_RegisterReturn xmlns:ns1="http://conference.sjtu.edu" href="#id0" />
    </part>
    </registerOutput>
    </messages>
    The detailed value of the return message lost, only leaving the href. Can I find the desired value again? should I try another XPATH expression? should I parse the result from the SOAP message directly? Or it's a problem of the system itself?
    Hope you can do me a favor, thanks.

    From Axis's user guide: RPC services default to the soap section 5 encoding rules, objects will be encoded via "multi-ref" serialization. Document services do not use any encoding (so in particular, you won't see multiref object serialization or SOAP-style arrays on the wire)
    May be I should try document service style instead of RPC. Thanks for your reply.

  • Complex types returned from web services

    I'm having problems getting values from a complex type from a
    CFC web service. Are there any tutorials that show you how this is
    done? The only tutorials I've seen have been returning simple
    types.
    I have tried everything I know, which is not a lot I must
    admit, I'm just a beginner! *L*
    Thanks in advance.

    I'm having problems getting values from a complex type from a
    CFC web service. Are there any tutorials that show you how this is
    done? The only tutorials I've seen have been returning simple
    types.
    I have tried everything I know, which is not a lot I must
    admit, I'm just a beginner! *L*
    Thanks in advance.

  • Cannot assign value to a Variable of Complex Type beyond index 1

    Hello:
    I have a variable defined as a complex type as followed. I tried to assign a value to each of the two elements but it only allows me to assign to the 'element#1.
    This statement that tries to assign a value into element#2 will not work, if I assign with '[1]' for the first element it will work:
    <copy> <---- THIS WORKS
    <from expression="'John'"/>
    <to variable="My_Variable"
    part="My_Collection"
    query="/ns9:My_Collection/ns9:Collection/ns9:Collection_Item[1]/ns9:pname"/>
    </copy>
    <copy> <---- THIS DOES NOT WORK
    <from expression="'John'"/>
    <to variable="My_Variable"
    part="My_Collection"
    query="/ns9:My_Collection/ns9:Collection/ns9:Collection_Item[2]/ns9:pname"/>
    </copy>
    Is there something wrong with my definition below that allows only element#1 to be refererenced but not element#2???? Am I missing some kind of initialization that is needed to initialize both elements????
    Here are my message and Complex Type definitions:
    <variable name="My_Variable" messageType="ns8:args_out_msg"/>
    <message name="args_out_msg">
    <part name="My_Collection" element="db:My_Collection"/>
    </message>
    <element name="My_Collection">
    <complexType>
    <sequence>
    <element name="Collection" type="db:Collection_Type" db:index="2" db:type="Array" minOccurs="0" nillable="true"/>
    <element name="Ret" type="string" db:index="3" db:type="VARCHAR2" minOccurs="0" nillable="true"/>
    </sequence>
    </complexType>
    </element>
    <complexType name="Collection_Type">
    <sequence>
    <element name="Collection_Item" type="db:Collection_Type_Struct" db:type="Struct" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
    </sequence>
    </complexType>
    <complexType name="Collection_Type_Struct">
    <sequence>
    <element name="pname" db:type="VARCHAR2" minOccurs="0" nillable="true">
    <simpleType>
    <restriction base="string">
    <maxLength value="25"/>
    </restriction>
    </simpleType>
    </element>
    </sequence>
    </complexType>
    The error msg it gives me is as followed:
    [2010/09/04 00:47:59] Error in <assign> expression: <to> value is empty at line "254". The XPath expression : "" returns zero node, when applied to document shown below:less
    oracle.xml.parser.v2.XMLElement@1fa7874
    [2010/09/04 00:47:59] "{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure" has been thrown.less
    -<selectionFailure xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
    -<part name="summary">
    <summary>
    XPath query string returns zero node.
    According to BPEL4WS spec 1.1 section 14.3, The assign activity &lt;to&gt; part query should not return zero node.
    Please check the BPEL source at line number "254" and verify the &lt;to&gt; part xpath query.
    </summary>
    </part>
    </selectionFailure>
    Thanks
    Newbie

    Hello:
    Base on the suggestion to use 'append' instead of 'copy', I tried to define a 'singleNode' which is of type 'Collection_Type_Struct' so I can append this individual 'struct' into my array (i.e. as the 2nd. element of my array "/ns9:My_Collection/ns9:Collection/ns9:Collection_Item"), but I am getting an error in defining this variable as:
    <variable name="singleNode" element="Collection_Type_Struct"/> <--- error
    Can someone tell me how should I define "singleNode" so I can put a value in it and then append this 'singleNode' into the array:
    <variable name="singleNode" element=" how to define this????"/>
    <assign>
    <copy>
    <frem expression="'Element2Value'"/>
    <to variable="singleNode"
    part="My_Collection"
    query="/ns9:My_Collection/ns9:Collection/ns9:Collection_Item/ns9:pname"/>
    </copy>
    </assign>
    <bpelx:assign>
    <bpelx:append>
    <from variable="singleNode" query="/ns9:My_Collection/ns9:Collection/ns9:Collection_Item"/>
    <to variable="My_Variable"
    "part="My_Collection"
    query="/ns9:My_Collection/ns9:Collection"/>
    </bpelx:append>
    </bpelx:assign>
    Again here is my definition in my .xsd file:
    <element name="My_Collection">
    <complexType>
    <sequence>
    <element name="Collection" type="db:Collection_Type" db:index="2" db:type="Array" minOccurs="0" nillable="true"/>
    <element name="Ret" type="string" db:index="3" db:type="VARCHAR2" minOccurs="0" nillable="true"/>
    </sequence>
    </complexType>
    </element>
    <complexType name="Collection_Type">
    <sequence>
    <element name="Collection_Item" type="db:Collection_Type_Struct" db:type="Struct" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
    </sequence>
    </complexType>
    <complexType name="Collection_Type_Struct">
    <sequence>
    <element name="pname" db:type="VARCHAR2" minOccurs="0" nillable="true">
    <simpleType>
    <restriction base="string">
    <maxLength value="25"/>
    </restriction>
    </simpleType>
    </element>
    </sequence>
    </complexType>
    Thanks for any help!!!!

  • Human tasks, complex types and variable assignment.

    Hi folks,
    I encountered a problem while working with 10.1.3.1 which I haven't managed to solve yet and would be grateful for assistance. I have defined a complex data type (just a sequence of strings) and want to fill that data type by going through a flow of screens, e.g. through several human tasks. I have defined that type as a variable to the BPEL process and have managed to assign simple expressions to the variable and pass that into a Human Task. In the task I see now a simple input form for all attributes of the type.
    Now the problem. After I fill out the form and complete the human task, I have
    The global variable:
    <outputVariable>
         <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
              <MyProcessResponse xmlns="http://xmlns.oracle.com/VacationRequest">
                   <vorname/>
                   <nachname/>
                   <strasse/>
                   <nummer/>
                   <postleitzahl/>
                   <stadt/>
                   <maximaleDauer/>
                   <minimaleDauer/>
              </MyProcessResponse>
         </part>
    </outputVariable>
    and the return value from the human task:
    <task>
         <title>CaptureData</title>-
              <payload>
                   <MyProcessResponse>
                        <vorname>David</vorname>
                        <nachname>Beckham</nachname>
                        <strasse>HighStreet</strasse>
                        <nummer/>
                        <postleitzahl/>
                        <stadt/>
                        <maximaleDauer/>
                        <minimaleDauer/>
                   </MyProcessResponse>
              </payload>
    </task>
    Now the only thing I would like to do is to replace the original values in the variable with the new values that have been returned from the task, this should be performed in an extra assign step. Sounds simple. JDeveloper wouldn't even let me klick through the return value from the HumanTask, so it seems as if I have to do things manually.
    These are my tries:
    Command 1:
    <copy>
         <from variable="CaptureData_1_globalVariable"
    part="payload" query="/task:task/task:payload" />
    <to variable="outputVariable" part="payload"
    query="/ns1:MyProcessResponse"/>
    </copy>
    Result 1:
    <outputVariable>
         <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
              <ns0:MyProcessResponse xmlns="http://xmlns.oracle.com/bpel/workflow/task"     xmlns:ns0="http://xmlns.oracle.com/VacationRequest">
                   <MyProcessResponse xmlns="http://xmlns.oracle.com/VacationRequest">
                        <vorname>David</vorname>
                        <nachname>Beckham</nachname>
                        <strasse>HighStreet</strasse>
                        <nummer/>
                        <postleitzahl/>
                        <stadt/>
                        <maximaleDauer/>
                        <minimaleDauer/>
                   </MyProcessResponse>
              </ns0:MyProcessResponse>
         </part>
    </outputVariable>
    --> There is one MyProcessResponse element too many
    Command 2:
    <copy>
         <from variable="CaptureData_1_globalVariable"
    part="payload" query="/task:task/task:payload"/>
    <to variable="outputVariable" part="payload"
    query="/ns1:MyProcessResponse/ns1:vorname"/>
    </copy>
    Result 2:
    <outputVariable>
         <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
              <MyProcessResponse xmlns="http://xmlns.oracle.com/VacationRequest">
                   <ns0:vorname xmlns="http://xmlns.oracle.com/bpel/workflow/task"                     xmlns:ns0="http://xmlns.oracle.com/VacationRequest">
                        <MyProcessResponse xmlns="http://xmlns.oracle.com/VacationRequest">
                             <vorname>David</vorname>
                             <nachname>Beckham</nachname>
                             <strasse>HighStreet</strasse>
                             <nummer/>
                             <postleitzahl/>
                             <stadt/>
                             <maximaleDauer/>
                             <minimaleDauer/>
                        </MyProcessResponse>
                   </ns0:vorname>
                   <nachname/>
                   <strasse/>
                   <nummer/>
                   <postleitzahl/>
                   <stadt/>
                   <maximaleDauer/>
                   <minimaleDauer/>
              </MyProcessResponse>
         </part>
    </outputVariable>
    --> This was moreless expected, since I tried to copy the stuff to some wrong place.
    Command 3:
    <copy>
         <from variable="CaptureData_1_globalVariable"
    part="payload" query="/task:task/task:payload/ns0:MyProcessResponse"/>
    <to variable="outputVariable" part="payload"
    query="/ns1:MyProcessResponse"/>
    </copy>
    Result 3:
    --> Task does't return (!!!). In the BPEL Worklist, the task is completed, however in the BPEL console it still apears as "waiting to return from Human task".
    Does anyone have a hint on how to copy the values so that I get exactly the structure that I printed at the very top?
    Thanks for help. Rock On !

    Hello everyone,
    It seems that we are talking about different things, I am afraid. Let me describe the scenario once again:
    - I want to have a BPEL process with more than one role involved
    - This process should be used to gather some complex data.
    - All data gathering should be done through HumanTasks.
    So I defined an xsd complex type, that contains a sequence of fields. This complex type should be part of the process payload.
    Now before HumanTask 1 is called, I copy the contents of this variable into the input for tasks1. This works fine and I see the appropriate values, when opening the Human Task in the BPEL worklist application.
    Now after HumanTask1 is completed, the values I entered inside that tasks are returned as a variable from the HumanTask. My problem is, that I cannot copy the contents of the task back into the main process. With simpleTypes this is relatively ok, since Jdev supports the assembling of the copy operation, however for complex tasks it fails.
    A typical scenario for this would be where e.g. a customer fills a shipping address and afterwards a store staff fills product details in the same order. In Java this could be solved via "pass by reference". Who can provide an example?

  • How to invoke a Web Service from PL/SQL with Complex Type as  input.

    Hello,
    I am trying to invoke a web service from PL/SQL using the UTL_DBWS package.
    The web service expects a complex type as input (defined below):
    <xs:complexType name="MsgType">
    <xs:sequence>
    <xs:element name="sender" type="xs:string"/>
    <xs:element name="messageId" type="xs:string"/>
    <xs:element name="messageType" type="xs:string"/>
    <xs:element name="dateSent" type="xs:date"/>
    </xs:sequence>
    </xs:complexType>
    How to construct input to this in PL/SQL Procedure?
    Has any body tried this before?
    An exmaple will be helpful.
    Thanks

    Dear,
    I have read your article, it is useful for me. But I cannot Apply to my case. Please kindly help me. Thank you.
    When running, the error occurs:
    1:39:31 Execution failed: ORA-20000: soapenv:Server.userException - org.xml.sax.SAXParseException: Attribute name &quot;password&quot; associated with an element type &quot;user&quot; must be followed by the &apos; = &apos; character.
    My webservice Url: http://abc.com.vn:81/axis/ABC_WS_TEST.jws?wsdl
    I make PL/SQL (similiar as your example)
    FUNCTION INVOKESENDMT
    RETURN VARCHAR2
    AS
    l_request soap_api.t_request;
    l_response soap_api.t_response;
    l_return VARCHAR2(32767);
    l_url VARCHAR2(32767);
    l_namespace VARCHAR2(32767);
    l_method VARCHAR2(32767);
    l_soap_action VARCHAR2(32767);
    l_result_name VARCHAR2(32767);
    p_zipcode VARCHAR2(160);
    BEGIN
    --p_zipcode:='''TEST'' ; ''TEST'';''84912187098'';''84912187098'';''0'';''8118'';''1'';''000001'';''ThuNghiem'';''''';
    p_zipcode:='TEST';
    -- Set proxy details if no direct net connection.
    --UTL_HTTP.set_proxy('myproxy:4480', NULL);
    --UTL_HTTP.set_persistent_conn_support(TRUE);
    -- Set proxy authentication if necessary.
    --soap_api.set_proxy_authentication(p_username => 'TEST',
    -- p_password => 'TEST');
    l_url := 'http://abc.com.vn:81/axis/ABC_WS_TEST.jws';
    l_namespace := 'xmlns="' || l_url || '"';
    l_method := 'sendMT';
    l_soap_action := l_url || '#sendMT';
    l_result_name := 'sendMTResponse';
    l_request := soap_api.new_request(p_method => l_method,
    p_namespace => l_namespace);
    soap_api.add_parameter(p_request => l_request,
    p_name => 'user password sender receiver chargedflag servicenumber messagetype messageid textcontent binarycontent',
    p_type => 'xsd:string',
    p_value => p_zipcode);
    l_response := soap_api.invoke(p_request => l_request,
    p_url => l_url,
    p_action => l_soap_action);
    l_return := soap_api.get_return_value(p_response => l_response,
    p_name => l_result_name,
    p_namespace => l_namespace);
    RETURN l_return;
    END;

  • Web service Complex type

    hello i want to ask if i can make a complex type that is composed of many other classes and witch databinding framework should i use to do do the mapping from xml to my one classes not the auto generated classes thanks for your help.

    Hi Ray,
    I just had you set your "per" object to its constructor out of habit. Don't know about you, but I spend too much time chasing null pointer exceptions.
    Try this. It's easy and quick.
    1) Hold your mouse over the ObtenerPersonaActivaDadoCI() method in the Project Navigator tab. By doing this, I'm guessing you'll see it's not returning a Persona object.
    or
    2) Simply drag the ObtenerPersonaActivaDadoCI() method from the Project Navigator tab into your logic. By doing this, you'll notice that it has a value in front of the "=" sign. Again, I'm guessing you'll see it's not returning a Persona object.
    Even though the Persona object and the object that ObtenerPersonaActivaDadoCI() returns both have the same list of attributes, I believe that you'll continue to get the error you're seeing if you try to set per (since it's an Persona object) to the value returned form ObtenerPersonaActivaDadoCI().
    To get around the problem, let's say you instead have the ObtenerPersonaActivaDadoCI() method return it's value to an "opadCI" object (the type of object you found out that the method returns by doing 1 or 2 above). You might want to fix your problem by doing something like this:
    per.firstAttr = opadCI.firstAttr
    per.sedondAttr = opadCI.sedondAttr
    per.thirdAttr = opadCI.thirdAttr
    Hope this helps,
    Dan

  • Complex types in fault messages - is this possible in WLS8.1?

    Hi all,
    I'm writing a standard WSDL and want to return a complex type (or at least, a customised simple type) in a fault. This has been previously discussed here: http://forums.bea.com/bea/thread.jspa?threadID=600004053&tstart=15. I've given full details below, but the short story is that if a <fault> message if a complex type, then wsdl2service fails with odd errors. If on the same WSDL/schema I change the exception type to a builtin type (like xsd:string), it all works fine.
    Google yields nothing, but if anyone has some pointers on how to do it or where to read, I'd be grateful.
    Cheers,
    -Tim West
    Details:
    I have a message and operation:
      <message name="AirlineException">
        <part name="AirlineException" element="tns:AirlineException"/>
      </message>
      <portType name="AirlinePort">
        <operation name="getCustomer">
          <input message="tns:getCustomerIn"/>
          <output message="tns:getCustomerOut"/>
          <fault name="AirlineException" message="tns:AirlineException"/>
        </operation>
      </portType>Where AirlineException is defined thus:
          <complexType name="AException">
            <sequence>
              <element name="message" type="string" nillable="true"/>
            </sequence>
          </complexType>
          <element name="AirlineException" type="tns:AException"/>(If I can get this to work, I will flesh out the complexType with some more information).
    When I attempt to generate bindings with autotype and wsdl2service, autotype works but wsdl2service fails like this:
    generate-server-binding-jar:
    [autotype] Autotyping for wsdl Deploy/airline/airline-ws-server_war/WEB-INF/airline.wsdl
    [wsdl2service] Generating web service from wsdl Deploy/airline/airline-ws-server_war/WEB-INF/airline.wsdl
    [wsdl2service] C:\...\org\jacksonwest\airline\binding\AirlineException.java:13:
           package org.jacksonwest.airline.binding.types does not exist
    [wsdl2service] private org.jacksonwest.airline.binding.types.AException info;
    [wsdl2service] ^
    [wsdl2service] C:\...\org\jacksonwest\airline\binding\AirlineException.java:15:
          package org.jacksonwest.airline.binding.types does not exist
    [wsdl2service] public AirlineException(org.jacksonwest.airline.binding.types.AException t) {
    [wsdl2service] ^
    [wsdl2service] C:\...\org\jacksonwest\airline\binding\AirlineException.java:19:
          package org.jacksonwest.airline.binding.types does not exist
    [wsdl2service] public org.jacksonwest.airline.binding.types.AException getAirlineException() {
    [wsdl2service] ^
    [wsdl2service] C:\...\org\jacksonwest\airline\binding\AirlineException.java:23:
          package org.jacksonwest.airline.binding.types does not exist
    [wsdl2service] public void setAirlineException(org.jacksonwest.airline.binding.types.AException t) {
    [wsdl2service] ^
    [wsdl2service] 4 errors
    [wsdl2service] java.io.IOException: Compiler failed executable.execNow, if I change the type of element 'AirlineException' to a built-in type like 'string', it all works fine. Also, I can use the generated 'AException' type in an <input> or <output> message - it's the combination of complexType and <fault> that causes the problem.
    My service was originally document/literal, and I've since rewritten it as rpc/literal, as I've had more success with rpc than document on Java platforms. The problem exists in both WSDL styles.
    I've read at http://e-docs.bea.com/wls/docs81/notes/new.html that WLS8.1 should be now able to handle complexTypes in faults, but for the life of me I can't do it!

    I got it :)
    The bizarre compile errors were being caused by the old version of the classes being present on the classpath that I supplied to wsdl2service. When I removed them (leaving only weblogic.jar and webservices.jar on the classpath), it worked fine first time.
    So, my guess is that the ones on the classpath (the old ones) were taking precedence over the newly-generated ones, and these were obviously not compatible!
    Cheers,
    -Tim

  • ****Urgent**** Webservice Complex Type Handling ****Urgent****

    Hi kglad, am junior flash developer trying out webservices.
    So i was trying out a webservice "https://www.suhrkamp.de/webservice/suhrkamp_ws.cfc?wsdl"
    where i call getNews("webservicechef","remote147suhrkamp",41722) method.But even before the
    method is executed on the server i get an error of "Type apachesoap:Document not resolvable".From more research av come
    to knw tht the problem is that the service returns a complex type of apachesoap:Document
    which flash doesnt seem to understand.So how will i solve this....?
    my source is shown here below
    import mx.services.*;
    bt_Enter.clickHandler = function() {
        trace("Show invocation..");
        var q:String = input.text;
        //used to trace the actions from the cleint..
        stockServiceLog = new Log(Log.VERBOSE);
        stockServiceLog.onLog = function(txt) {
            trace(txt);
            disp.text = txt;
        /*var fault = function (stat) {
        trace("in fault..,");
            if (stat.code == "WebServiceFault"){
                trace(stat.data.faultcode);
                trace(stat.data.faultstring);
                trace(stat.data.detail);
        //Instanciating the web service..
        var stockservice = new WebService("https://www.suhrkamp.de/webservice/suhrkamp_ws.cfc?wsdl", stockServiceLog);
        //stockservice.addEventListener("status", fault);
        stockResultObj = stockservice.getNews("webservicechef","remote147suhrkamp","41722");
        trace("Requested XML: "+stockResultObj.request+" from  request");
        //stockservice.onLoad = trace("loading");
        // the onResult function is called if the service is successful
        stockResultObj.onResult = function(result) {
            trace(" result ok..");
            display.text=result;
            trace(result);
            trace("RequestXML: "+stockResultObj.request);
            trace("ResponseXML: "+stockResultObj.response);
        stockResultObj.onFault = function(fault) {
            trace(" on error  ok..");
            // If there is any error such as the service not working, the onFault handler will be invoked.
            trace(fault.faultCode+","+fault.faultstring);
            disp.text += fault.faultCode+","+fault.faultstring;

    Hi Sampath,
    Please check SAP note 1004108. I think the issue you describe is one of the limitations described in this note.
    Regards,
       Jan

Maybe you are looking for

  • JBO-25221 error

    In my ADF - Business Components Application: When trying to execute a custom method on the application module, I receive an error: JBO-25221: Methode BackOfficeAppModuleDataControl.dataProvider.WijzigObjectStatusEnquete() wordt niet ondersteund. I mi

  • Windows License to Mac?

    I currently have a Windows License for the Creative Suite 5.5 but am most likely upgrading to a Mac for univesity studies.  Is there any way I can switch my license to a Mac?  If not what are my options if there are any that don't require me having t

  • Solaris Volume manager

    Hi, Hi, We are in process of developing a backup utility (CLI) using the Raid manager (Firmware operating at device level). Requirement When the user gives a mount point for backup -     Get the disk information that is mounted at the given mount poi

  • Import from a full database export having  5 .dmp files

    i have a full database export having 5 .dmp files of 2g each, its having a user agvlc and which contains some partitioned tables,i imported the data for the user agvlc in a tablespace agvlc al the tables gets imported but the partitions are not getti

  • Useful Web ADI custom integrators docs

    I have recently started to look at creating Custom Integrators and thought it might help others if I listed the Oracle Docs I have found since they don't go out of their way to explain how to create custom integrators WebADI Implementation and Admini