Problem in calling a WS with complex type

Hi all...
I have to invoke a WS that has as input type a complex type defined in the wsdl...
<complexType name="LoginInfo">
- <sequence>
  <element name="appCode" nillable="true" type="string" />
  <element name="login" nillable="true" type="string" />
  <element name="passwd" nillable="true" type="string" />
  </sequence>
  </complexType>the soapui request looks like this:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://com.susan/SusanWS/types">
   <soapenv:Header/>
   <soapenv:Body>
      <typ:LoginWebService>
         <LoginInfo_1>
            <appCode>WEB_SERVICES</appCode>
            <login>root</login>
            <passwd>root</passwd>
         </LoginInfo_1>
      </typ:LoginWebService>
   </soapenv:Body>
</soapenv:Envelope>in my java code I'm trying to call it with:
Service service = new Service();
            Call call = (Call)service.createCall();
            call.setTargetEndpointAddress( new URL( wsEndpoint ) );
//            call.setOperationName( wsMethod );
            call.setOperationName( new QName("http://com.susan/SusanWS/types",wsMethod));
            call.addParameter( "LoginInfo_1", Constants.XSD_ANYTYPE, ParameterMode.IN );
//            call.addParameter( "appCode", Constants.XSD_STRING, ParameterMode.IN );
//            call.addParameter( "login", Constants.XSD_STRING, ParameterMode.IN );
//            call.addParameter( "passwd", Constants.XSD_STRING, ParameterMode.IN );
            String[] params={appCode, login, passwd};
//            call.setReturnType( Constants.XSD_INT );
//            Object retval = call.invoke( new String[] {appCode, login, passwd} );
            Object retval = call.invoke( new Object[] { params } );doing so..it doesn't work...the first problem I can see...is that I don't assign a parameter name to the 3 strings I pass in the param array...
anybody has a tip to give me on how to solve this problem?

solved...
I imported the wsdl into Intellij idea...which created all the needed classes, interfaces,...and used service locator and endpoint binding stubs...

Similar Messages

  • RPC calls to Operations with complex types is it possible?

    Using Remote Procedure Calls, and Document Literal Wrapped SOAP Messages
    I have a complex type called
    <customerCall>
    <custId>
    <custPhone>
    <custName>
    <custCat>
    <custIssue>
    <custOperator minoccurs = 0>
    <custEnrollDate minoccurs = 0 >
    I have an operation called getFirstAvailableOperator(currentCall) where current call is an instance of the customerCall type? Where getFirst AvailableOperator returns the complex type customerCall?

    Using Remote Procedure Calls, and Document Literal Wrapped SOAP Messages
    I have a complex type called
    <customerCall>
    <custId>
    <custPhone>
    <custName>
    <custCat>
    <custIssue>
    <custOperator minoccurs = 0>
    <custEnrollDate minoccurs = 0 >
    I have an operation called getFirstAvailableOperator(currentCall) where current call is an instance of the customerCall type? Where getFirst AvailableOperator returns the complex type customerCall?

  • Problem weblogic with complex types

    I have deployed a web service in weblogic 10.3. I have created it with axis, and use complex types. The problem is when I test the WS:
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    <env:Header />
    <env:Body>
    <PruebaRequest xmlns="http://servicioweb.dispensaciones.es/">
    <!--Optional:-->
    <result>6</result>
    </PruebaRequest>
    </env:Body>
    </env:Envelope>
    Service Response
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    <env:Header />
    <env:Body>
    <env:Fault>
    <faultcode>env:Server</faultcode>
    <faultstring>Server CodecHandler Failed to decode
    -> Failed to decode message
    </faultstring>
    <detail>
    <bea_fault:stacktrace xmlns:bea_fault="http://www.bea.com/servers/wls70/webservice/fault/1.0.0">weblogic.wsee.codec.CodecException: Failed to decode message
    at weblogic.wsee.codec.soap11.SoapCodec.decode(SoapCodec.java:186)
    at weblogic.wsee.ws.dispatch.server.CodecHandler.decode(CodecHandler.java:139)
    at weblogic.wsee.ws.dispatch.server.CodecHandler.handleRequest(CodecHandler.java:40)
    at weblogic.wsee.handler.HandlerIterator.handleRequest(HandlerIterator.java:141)
    at weblogic.wsee.ws.dispatch.server.ServerDispatcher.dispatch(ServerDispatcher.java:114)
    at weblogic.wsee.ws.WsSkel.invoke(WsSkel.java:80)
    at weblogic.wsee.server.servlet.SoapProcessor.handlePost(SoapProcessor.java:66)
    at weblogic.wsee.server.servlet.SoapProcessor.process(SoapProcessor.java:44)
    at weblogic.wsee.server.servlet.BaseWSServlet$AuthorizedInvoke.run(BaseWSServlet.java:285)
    at weblogic.wsee.server.servlet.BaseWSServlet.service(BaseWSServlet.java:169)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3498)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused by: com.bea.xml.XmlException: failed to load java type corresponding to e=PruebaRequest@http://servicioweb.dispensaciones.es/
    at com.bea.staxb.runtime.internal.UnmarshalResult.getPojoBindingType(UnmarshalResult.java:361)
    at com.bea.staxb.runtime.internal.UnmarshalResult.determineTypeForGlobalElement(UnmarshalResult.java:316)
    at com.bea.staxb.runtime.internal.UnmarshalResult.unmarshalElement(UnmarshalResult.java:226)
    at com.bea.staxb.runtime.internal.UnmarshallerImpl.unmarshalElement(UnmarshallerImpl.java:166)
    at weblogic.wsee.bind.runtime.internal.LiteralDeserializerContext.unmarshalElement(LiteralDeserializerContext.java:89)
    at weblogic.wsee.bind.runtime.internal.BaseDeserializerContext.internalDeserializeElement(BaseDeserializerContext.java:182)
    at weblogic.wsee.bind.runtime.internal.BaseDeserializerContext.deserializeElement(BaseDeserializerContext.java:117)
    at weblogic.wsee.codec.soap11.SoapDecoder.decodePart(SoapDecoder.java:494)
    at weblogic.wsee.codec.soap11.SoapDecoder.decodeParams(SoapDecoder.java:287)
    at weblogic.wsee.codec.soap11.SoapDecoder.decodeParts(SoapDecoder.java:172)
    at weblogic.wsee.codec.soap11.SoapDecoder.decode(SoapDecoder.java:125)
    at weblogic.wsee.codec.soap11.SoapCodec.decode(SoapCodec.java:180)
    ... 22 more
    Caused by: com.bea.xml.XmlException: failed to load java type corresponding to e=PruebaRequest@http://servicioweb.dispensaciones.es/
    at com.bea.staxb.runtime.internal.UnmarshalResult.getPojoBindingType(UnmarshalResult.java:361)
    at com.bea.staxb.runtime.internal.UnmarshalResult.determineTypeForGlobalElement(UnmarshalResult.java:316)
    at com.bea.staxb.runtime.internal.UnmarshalResult.unmarshalElement(UnmarshalResult.java:226)
    at com.bea.staxb.runtime.internal.UnmarshallerImpl.unmarshalElement(UnmarshallerImpl.java:166)
    at weblogic.wsee.bind.runtime.internal.LiteralDeserializerContext.unmarshalElement(LiteralDeserializerContext.java:89)
    at weblogic.wsee.bind.runtime.internal.BaseDeserializerContext.internalDeserializeElement(BaseDeserializerContext.java:182)
    at weblogic.wsee.bind.runtime.internal.BaseDeserializerContext.deserializeElement(BaseDeserializerContext.java:117)
    at weblogic.wsee.codec.soap11.SoapDecoder.decodePart(SoapDecoder.java:494)
    at weblogic.wsee.codec.soap11.SoapDecoder.decodeParams(SoapDecoder.java:287)
    at weblogic.wsee.codec.soap11.SoapDecoder.decodeParts(SoapDecoder.java:172)
    at weblogic.wsee.codec.soap11.SoapDecoder.decode(SoapDecoder.java:125)
    at weblogic.wsee.codec.soap11.SoapCodec.decode(SoapCodec.java:180)
    at weblogic.wsee.ws.dispatch.server.CodecHandler.decode(CodecHandler.java:139)
    at weblogic.wsee.ws.dispatch.server.CodecHandler.handleRequest(CodecHandler.java:40)
    at weblogic.wsee.handler.HandlerIterator.handleRequest(HandlerIterator.java:141)
    at weblogic.wsee.ws.dispatch.server.ServerDispatcher.dispatch(ServerDispatcher.java:114)
    at weblogic.wsee.ws.WsSkel.invoke(WsSkel.java:80)
    at weblogic.wsee.server.servlet.SoapProcessor.handlePost(SoapProcessor.java:66)
    at weblogic.wsee.server.servlet.SoapProcessor.process(SoapProcessor.java:44)
    at weblogic.wsee.server.servlet.BaseWSServlet$AuthorizedInvoke.run(BaseWSServlet.java:285)
    at weblogic.wsee.server.servlet.BaseWSServlet.service(BaseWSServlet.java:169)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3498)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    </bea_fault:stacktrace>
    </detail>
    </env:Fault>
    </env:Body>
    </env:Envelope>
    Could anyone help?

    It seems WLS is not comfortable with complex types in WebServices signature. In fact, it seems so for array of classes too. When I exposed a java method with a signature like:
    public myClass\[] myMethod(myClass\[] param) {}
    I got the same exception. However, the same WebService is working well on oc4j (embedded in jDev)
    Edited by: speakingTree on Aug 17, 2009 12:57 AM

  • WCF Service as Data source in SSRS report with Complex Types

    Hi All,
    I have a requirement where we are suppose to use WCF service as datasource in SSRS. I was able to do that when the WCF response type was simple.
    Now the requirement have changed where the response type is complex . I couldn't figure out a way of accessing WCF with complex types.
    Any pointer will be of great help as I couldn't find any related articles for this kind of scenario.
    Raj

    Hi Raj,
    WCF uses a serialization engine called the Data Contract Serializer by default to serialize and deserialize data (convert it to and from XML). All .NET Framework primitive types, such as integers and strings, as well as certain types
    treated as primitives, such as DateTime and XmlElement,
    can be serialized with no other preparation and are considered as having default data contracts. Many .NET Framework types also have existing data contracts. For a full list of serializable types, see Types
    Supported by the Data Contract Serializer.
    New complex types that you create must have a data contract defined
    for them to be serializable. You can explicitly create a data contract by using DataContractAttribute and DataMemberAttribute attributes.
    This is normally done by applying the DataContractAttribute attribute
    to the type.
    You can refer to :
    http://msdn.microsoft.com/en-us/library/ms733811(v=vs.110).aspxhttp://www.codeproject.com/Articles/738844/Using-WCF-Data-Contract-Known-Types-by-Example
    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

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

  • Unsupported feature: Faults with Complex types

    I am confused about the statement that WebLogic currently does not support Faults
    with Complex types. In a pilot project I am working on we did expose custom complex
    exceptions and it appeared that WebLogic correctly created the WSDL Fault definitions.
    Were we just lucky? Is the recommended approach to only use exceptions that extend
    SOAPFault?
    This may sound like a strange question because it appears WebLogic handled this
    correctly, but the part of the project is to document possible problem areas when
    exposing Web Services. If custom Faults are a problem area I need to addres it.
    We are working with Weblogic 8.1, but are not using Workshop.
    The web service that throws 2 custom exceptions(extend Exception); AvailabilityException
    and AvailabilityQueryException
    AvailabilityQueryException extends AvailabilityException and has some defined
    properties (statusCode and statusText).
    The fault definition in the wsdl is below?
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:com.cardinal.mps.availability.ejb"
    elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:com.cardinal.mps.availability.ejb">
    <xsd:element type="stns:AvailabilityException" name="AvailabilityException">
    </xsd:element>
    <xsd:element type="stns:AvailabilityQueryException" name="AvailabilityQueryException">
    </xsd:element>
    <xsd:complexType name="AvailabilityException">
    </xsd:complexType>
    <xsd:complexType name="AvailabilityQueryException">
    <xsd:complexContent>
    <xsd:extension base="stns:AvailabilityException">
         <xsd:sequence>
         <xsd:element type="xsd:string" name="message" minOccurs="1" nillable="true" maxOccurs="1">
    </xsd:element>
         <xsd:element type="xsd:string" name="statusCode" minOccurs="1" nillable="true"
    maxOccurs="1">
    </xsd:element>
    <xsd:element type="xsd:string" name="statusText" minOccurs="1" nillable="true"
    maxOccurs="1">
    </xsd:element>
    </xsd:sequence>
    </xsd:extension>
    </xsd:complexContent>
    </xsd:complexType>
    </xsd:schema>

    Issues around user defined exceptions, to a large part, were resolved in WLS 8.1
    SP1
    (cf. http://e-docs.bea.com/wls/docs81/notes/resolved.html#1604925 ).
    Also, similar issues in the wsdl-to-service approach were resolved in WLS 8.1
    SP2 (cf. http://e-docs.bea.com/wls/docs81/notes/resolved.html#1546275).
    If you have any specific issues please feel free to contact BEA Support.
    Regards
    Shridhar
    "Brit" <[email protected]> wrote:
    >
    I am confused about the statement that WebLogic currently does not support
    Faults
    with Complex types. In a pilot project I am working on we did expose
    custom complex
    exceptions and it appeared that WebLogic correctly created the WSDL Fault
    definitions.
    Were we just lucky? Is the recommended approach to only use exceptions
    that extend
    SOAPFault?
    This may sound like a strange question because it appears WebLogic handled
    this
    correctly, but the part of the project is to document possible problem
    areas when
    exposing Web Services. If custom Faults are a problem area I need to
    addres it.
    We are working with Weblogic 8.1, but are not using Workshop.
    The web service that throws 2 custom exceptions(extend Exception); AvailabilityException
    and AvailabilityQueryException
    AvailabilityQueryException extends AvailabilityException and has some
    defined
    properties (statusCode and statusText).
    The fault definition in the wsdl is below?
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:com.cardinal.mps.availability.ejb"
    elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:com.cardinal.mps.availability.ejb">
    <xsd:element type="stns:AvailabilityException" name="AvailabilityException">
    </xsd:element>
    <xsd:element type="stns:AvailabilityQueryException" name="AvailabilityQueryException">
    </xsd:element>
    <xsd:complexType name="AvailabilityException">
    </xsd:complexType>
    <xsd:complexType name="AvailabilityQueryException">
    <xsd:complexContent>
    <xsd:extension base="stns:AvailabilityException">
         <xsd:sequence>
         <xsd:element type="xsd:string" name="message" minOccurs="1" nillable="true"
    maxOccurs="1">
    </xsd:element>
         <xsd:element type="xsd:string" name="statusCode" minOccurs="1" nillable="true"
    maxOccurs="1">
    </xsd:element>
    <xsd:element type="xsd:string" name="statusText" minOccurs="1" nillable="true"
    maxOccurs="1">
    </xsd:element>
    </xsd:sequence>
    </xsd:extension>
    </xsd:complexContent>
    </xsd:complexType>
    </xsd:schema>

  • Web service call problem with complex types input

    We are trying to call a web service and pass as parameter
    some complex types. When invoking the web service everything works
    well on flex side, but on the server side the input parameters we
    get from flex are not correct - complex type is removed and the
    elements of the complex type are sent. See the example:
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    layout="absolute">
    <mx:WebService id="ws_id" wsdl="link" useProxy="false"
    fault="wsFault(event)">
    <mx:operation id="op_id" name="op"
    result="wsResult(event)">
    <mx:request>
    <parameters>
    <parameter1>{value1}</parameter1>
    <parameter2>{value2}</parameter2>
    <parameter3>{value3}</parameter3>
    <parameter4>
    <parameter4_1>{value4_1}</parameter4_1>
    <parameter4_2>{value4_2}</parameter4_2>
    <parameter4_3>{value4_3}</parameter4_3>
    </parameter4>
    </parameters>
    </mx:request>
    </mx:operation>
    </mx:WebService>
    </mx:Application>
    on server side we get this:
    <parameters>
    <parameter1>{value1}</parameter1>
    <parameter2>{value2}</parameter2>
    <parameter3>{value3}</parameter3>
    <parameter4_1>{value4_1}</parameter4_1>
    <parameter4_2>{value4_2}</parameter4_2>
    <parameter4_3>{value4_3}</parameter4_3>
    </parameters>
    Instead of :
    <parameters>
    <parameter1>{value1}</parameter1>
    <parameter2>{value2}</parameter2>
    <parameter3>{value3}</parameter3>
    <parameter4>
    <parameter4_1>{value4_1}</parameter4_1>
    <parameter4_2>{value4_2}</parameter4_2>
    <parameter4_3>{value4_3}</parameter4_3>
    </parameter4>
    </parameters>
    Any idea how is it possible to send complex type as web
    service input from flex ?

    Hi,
    I also have similar type of problem where I need to invoke a Web service with Complex input parameters.
    I followed Susan's blog but I stuck at a point where methos getItem is created.
    Can anyone tell me how to get that method for my requirement.
    If possible can you guys share your solutions here.
    Thanks in advance.

  • Call a method with complex data type from a DLL file

    Hi,
    I have a win32 API with a dll file, and I am trying to call some methods from it in the labview. To do this, I used the import library wizard, and everything is working as expected. The only problem which I have is with a method with complex data type as return type (a vector). According to this link, import library wizard can not import methods with complex data type.
    The name of this method is this:   const std::vector< BlackfinInterfaces::Count > Counts ()
    where Count is a structure defined as below:
    struct Count
       Count() : countTime(0) {}
       std::vector<unsigned long> countLines;
       time_t countTime;
    It seems that I should manually use the Call Library Function Node. How can I configure parameters for the above method?

    You cannot configure Call Library Function Node to call this function.  LabVIEW has no way to pass a C++ class such as vector to a DLL.

  • Db Adapter: problems by calling a procedure with type as parameter

    Hi,
    We using a db adapter in a bpel process.
    In that dapter we call a procedure with types as in and out parameter
    package.procedure(p_in IN in_t, p_rsult OUT result_t).
    When we calling the procedure, we don't call the procedure directly.
    We call that procedure in a schema who have the execute rigths for the package and the types.
    When we run the process we get the error message
    unable to convert the xsd element p_in whose user defined type is in_t
    cause: java.sql.SQLException: ora-01436 connect by loop in user data
    I am not shore if I draw the right conclusions.
    Is it rigth that bpel have a problem by using types as parameter when using two schematas? Isn't it a bug.
    For every help I was thankful.
    Thanks in advanced.
    Michael

    Hi,
    thanks for the hint. I have implemented a wrapper package and it's working well.
    Only one crux. The parameter of the called procedure are data types and not simple types.
    CREATE OR REPLACE TYPE pesa_db_return_t AS OBJECT
    (SUCCESS_MSG varchar2(255)
    ,FAULT_SQLCODE varchar2(255)
    ,FAULT_SQLMSG varchar2(255)
    Wrapper package...
    IS
    PROCEDURE prc_writeReOinDB (p_AuftragRechnungOnline IN pesa_data.pesa_tivu_reo_t
    ,p_result OUT pesa_data.pesa_db_return_t)
    IS
    BEGIN
    pkg_pesa_reo.prc_writeReOinDB (p_AuftragRechnungOnline => p_AuftragRechnungOnline
    ,p_result => p_result
    END prc_writeReOinDB;
    END pkg_pesa_wrapper;
    So I have to declare the parameter with the schema user in front of.
    Now, we have deployed thes sources on a second enviroment and get following error:
    <2008-04-22 15:01:25,749> <ERROR> <eweber.collaxa.cube.engine.dispatch> <BaseScheduledWorker::process> Failed to handle dispatch message ... exception ORABPEL-05002
    Message handle error.
    An exception occurred while attempting to process the message "com.collaxa.cube.engine.dispatch.message.instance.CallbackDeliveryMessage"; the exception is: Type class not found.
    Cannot find class for type "org.apache.xerces.dom.ElementNSImpl". Please check that the class is located in the classpath.
    You have a hint for me what I have to do?
    Thanks in advanced,
    Michael

  • Accessing a web service with complex types

    Hi I have been struggling with this web service for a while
    now....
    I am trying to send input parameters that are composed by :
    applicant name( name, surname, .....) and applicant input address(
    hse no, street, postcode...) Applicant dob(dob)....I am using
    <cfscript> tag to pass these parameters...Now my problem is
    do i need to put each complex type inside its own <cfscript>
    tag???
    ie:
    stName = structNew();
    stName.Title = "#Mr#";
    stName.forename = "Man";
    stName.othernames = " NA";
    stName.Applicant = "Yellow";
    stName.suffix="";
    stName.dob = createDate(1972,06,05);
    and do this for applicant address? or could i enclose this in
    under the same cfscript tag??
    Any help would be appreciated...thanks
    critical

    Check out
    http://hcc.musc.edu/research/shared_resources/xml_complex_types_to_cf_structure_notes.cfm
    The last part of that link is .cfm - not sure why its getting
    cut off.

  • Correct way to use AXL API with complex types css, partition, etc. involving: JAXBElement XFkType ?

    I am trying to figure out how to use the AXL API once exploded with the wsimport as explained here...
    https://developer.cisco.com/site/collaboration/management/axl/learn/how-to/axl-java-sample-application.gsp
    ...to use complex types (partition, css, etc). 
    --> What is the correct way to do it?
    Example 1: UpdatePhone
    When incorporing a complex type into the addition or update of a component, for instance RoutePartitionName, DevicePoolName or CallingSearchSpaceName.
    his function is not working:
    public void actualizarPhone(LPhone lPhone) {
            try {
                UpdatePhoneReq axlParams = new UpdatePhoneReq();
                axlParams.setName(lPhone.getName());
                axlParams.setDescription(lPhone.getDescription());
                axlParams.setDevicePoolName(lPhone.getDevicePoolName());
                axlParams.setCallingSearchSpaceName(lPhone.getCallingSearchSpaceName());
                StandardResponse response = axlPort.updatePhone(axlParams);
                //return response.getReturn()a.toString();
            } catch (Exception e) {
                logger.error(e);
                //return new ArrayList<LPhone>();
    It seems the right thing to do set as parameter for the "set" the result of the "get" in line: setDevicePoolName(lPhone.getDevicePoolName());
    but it says: "The method setDevicePoolName(JAXBElement<XFkType>) in the type UpdatePhoneReq is not applicable for the arguments (XFkType)"
    Example 2: AddLine
    I also have this problem when adding line. 
    And I've tried at least 3 approaches, no success yet:
    1)** Using factory object to obtain an R object
    ObjectFactory factory = new ObjectFactory();
    RRoutePartition rRoutePartition = factory.createRRoutePartition();
    rRoutePartition.setName("autodial");
    2) ** Trying to create the demanded object: JAXBElement<XFkType> myself.
    JAXBElement<XFkType> jaxbElement= new JAXBElement<XFkType>(new QName ("http://www.cisco.com/AXL/API/8.5","XRoutePartition"),XFkType.class,partition);
    jaxbElement.setValue(partition3);
    line.setRoutePartitionName(jaxbElement);
    3)** Using X Objects
    XCallForwardBusy fwdBusy = new XCallForwardBusy();
    fwdBusy.setForwardToVoiceMail("true");
    AddLineReq newLine = new AddLineReq();
    XLine line = new XLine();
    line.setAlertingName("ALerting Name");
    line.setAsciiAlertingName("Alerting Name ASCII");
    line.setCallForwardBusy(fwdBusy);
    line.setDescription("Description");
    line.setPattern("5555");
    I would appreciate a clean example about how to add a line setting a partition, and an explanation about how to use JAXBElement<XFkType> objects.
    regards!

    I am trying to figure out how to use the AXL API once exploded with the wsimport as explained here...
    https://developer.cisco.com/site/collaboration/management/axl/learn/how-to/axl-java-sample-application.gsp
    ...to use complex types (partition, css, etc). 
    --> What is the correct way to do it?
    Example 1: UpdatePhone
    When incorporing a complex type into the addition or update of a component, for instance RoutePartitionName, DevicePoolName or CallingSearchSpaceName.
    his function is not working:
    public void actualizarPhone(LPhone lPhone) {
            try {
                UpdatePhoneReq axlParams = new UpdatePhoneReq();
                axlParams.setName(lPhone.getName());
                axlParams.setDescription(lPhone.getDescription());
                axlParams.setDevicePoolName(lPhone.getDevicePoolName());
                axlParams.setCallingSearchSpaceName(lPhone.getCallingSearchSpaceName());
                StandardResponse response = axlPort.updatePhone(axlParams);
                //return response.getReturn()a.toString();
            } catch (Exception e) {
                logger.error(e);
                //return new ArrayList<LPhone>();
    It seems the right thing to do set as parameter for the "set" the result of the "get" in line: setDevicePoolName(lPhone.getDevicePoolName());
    but it says: "The method setDevicePoolName(JAXBElement<XFkType>) in the type UpdatePhoneReq is not applicable for the arguments (XFkType)"
    Example 2: AddLine
    I also have this problem when adding line. 
    And I've tried at least 3 approaches, no success yet:
    1)** Using factory object to obtain an R object
    ObjectFactory factory = new ObjectFactory();
    RRoutePartition rRoutePartition = factory.createRRoutePartition();
    rRoutePartition.setName("autodial");
    2) ** Trying to create the demanded object: JAXBElement<XFkType> myself.
    JAXBElement<XFkType> jaxbElement= new JAXBElement<XFkType>(new QName ("http://www.cisco.com/AXL/API/8.5","XRoutePartition"),XFkType.class,partition);
    jaxbElement.setValue(partition3);
    line.setRoutePartitionName(jaxbElement);
    3)** Using X Objects
    XCallForwardBusy fwdBusy = new XCallForwardBusy();
    fwdBusy.setForwardToVoiceMail("true");
    AddLineReq newLine = new AddLineReq();
    XLine line = new XLine();
    line.setAlertingName("ALerting Name");
    line.setAsciiAlertingName("Alerting Name ASCII");
    line.setCallForwardBusy(fwdBusy);
    line.setDescription("Description");
    line.setPattern("5555");
    I would appreciate a clean example about how to add a line setting a partition, and an explanation about how to use JAXBElement<XFkType> objects.
    regards!

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

  • JDBC-Adapter-Receiver Calling Stored Procedure with Input-Typ Record

    Hallo,
    I´ m trying calling a stored-procedure with two input-parameter; one of typ record (oracle) and one of type tabel of records. Is this possible (I think there are only types like string, integer etc. possible)? When not is there another possibility to work with that type?
    Thanks in advance,
    Frank

    Hi Frank,
    I think stored procedures will not take Array of Records as a Input. If you want to make a loop funtionality etc then JDBC adapter will work accordingly. You need to just call the stored procedure from the JDBC adapter. It will work for the array of records(multiple occurences).
    Receiver JDBC Procedures.
    /people/siva.maranani/blog/2005/05/21/jdbc-stored-procedures
    Alternative option is you can make use of Java Proxy and from there you can call stored procedure ..I think it is possible.. not tried.
    Hope this helps
    Regards,
    Moorthy

  • Pl Help......Web services with complex types

    Hi,
    I have deployed a web service on OC4J (9.02) having a complex type input and a complex type return. The web service is implemented as a stateless session bean and
    the relevant web.xml for the deployment is:
    <servlet>
    <servlet-name>ZipLookupManager</servlet-name>
    <servlet-class>oracle.j2ee.ws.SessionBeanWebService</servlet-class>
    <init-param>
    <param-name>jndi-name</param-name>
    <param-value>ZipLookupManagerBean</param-value>
    </init-param>
    <init-param>
    <param-name>class-name</param-name>
    <param-value>com.indus.banner.components.cdyne.ZipLookupManagerBean</param-va
    lue>
    </init-param>
    <init-param>
    <param-name>interface-name</param-name>
    <param-value>com.indus.banner.components.cdyne.IZipLookupManager</param-value
    >
    </init-param>
    <init-param>
    <param-name>custom-bean-qname</param-name>
    <param-value>
    com.indus.banner.components.cdyne.LatLongReturn,
    http://cdyne.components.banner.indus.com,
    LatLongReturn,
    org.apache.soap.encoding.soapenc.BeanSerializer,
    org.apache.soap.encoding.soapenc.BeanSerializer
    </param-value>
    </init-param>
    <init-param>
    <param-name>custom-bean-qname</param-name>
    <param-value>
    com.indus.banner.components.cdyne.ZipState,
    http://cdyne.components.banner.indus.com,
    ZipState,
    org.apache.soap.encoding.soapenc.BeanSerializer,
    org.apache.soap.encoding.soapenc.BeanSerializer
    </param-value>
    </init-param>
    </servlet>
    The web service deploys correct. I have all the relevant jars in the %J2EE_HOME%\lib folder. However, when I call the web service from a standalone client I get the following error:
    java.lang.ClassNotFoundException:
    org.apache.soap.encoding.soapenc.BeanSerializer
    at
    oracle.j2ee.ws.GeneratedClassLoader.findClass(GeneratedClassLoader.ja
    va:48)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
    at oracle.j2ee.ws.BaseWebService.initQnameMap(BaseWebService.java:602)
    at oracle.j2ee.ws.RpcWebService.init(RpcWebService.java:453)
    at
    oracle.j2ee.ws.SessionBeanRpcWebService.init(SessionBeanRpcWebService
    .java:54)
    at javax.servlet.GenericServlet.init(GenericServlet.java:258)
    at
    com.evermind.server.http.HttpApplication.loadServlet(HttpApplication.
    java:1956)
    at
    com.evermind.server.http.HttpApplication.findServlet(HttpApplication.
    java:4355)
    at
    com.evermind.server.http.HttpApplication.getRequestDispatcher(HttpApp
    lication.java:2484)
    Please advise!
    Rizwan

    Hi all,
    I haven't heard back from anyone. Is this forum alive still? I have entered a TAR on metalink on this issue but they say that apparently this was a defect under 9.02 and has been fixed under 9.04.
    Please help.
    Many thanks in advance.
    Rizwan

  • @WebParam with complex type

    Hi,
    I have a web-service method with a complex type parameter
    example : Class Person (name, age)
    and i have @WebParam(name = "person ") Person person
    and i want to get in the soap message the atrribute (name and age ) and not <person/>
    Is that possible
    Thanks in advance
    :)

    Hi,
    more explanation:
    @WebMethod
         public void printResult(@WebParam(name = "person") Person person)in the request soap message i get :
    <log:printResult>
             <!--Optional:-->
             <person/>
          </log:printResult>while I want to get this result :
    <log:printResult>
             <!--Optional:-->
             <person>
                 <name></name>
                 <age></age>
            </person>
          </log:printResult>assuming
    public class Person{
    private String name;
         private int age;
    }Thank you
    :)

Maybe you are looking for