Iterate Ove r Array In Soap RPC response

Hello,
I'm new to JCAPS so forgive me if I'm missing something obvious. I need to interact with a remote web service that has a SOAP binding style of RPC. It returns an array whose items are a complex type. I am trying to call this from a business process. I want to unmarshal the array and loop through its contents. I cannot figure out how to do this. Any help would be helpful.
Thanks
Tom

Hello,
I'm new to JCAPS so forgive me if I'm missing something obvious. I need to interact with a remote web service that has a SOAP binding style of RPC. It returns an array whose items are a complex type. I am trying to call this from a business process. I want to unmarshal the array and loop through its contents. I cannot figure out how to do this. Any help would be helpful.
Thanks
Tom

Similar Messages

  • Getting "OSB Service Callout action received SOAP Fault response" on trying to invoke a service using service callout

    I'm trying to invoke a search service using service callout . However on trying to test it , I'm getting this response
    <con:fault  xmlns:con="http://www.bea.com/wli/sb/context">
    <con:errorCode>BEA-382500</con:errorCode>
    <con:reason>
    OSB Service Callout action received SOAP Fault response
    </con:reason>
    <con:details>
    <con1:ReceivedFaultDetail  xmlns:con1="http://www.bea.com/wli/sb/stages/transform/config">
    <con1:faultcode  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">soapenv:Client</con1:faultcode>
    <con1:faultstring>Cannot find dispatch method for {}</con1:faultstring>
    <con1:http-response-code>500</con1:http-response-code>
    </con1:ReceivedFaultDetail>
    Please help in resolving this error.
    Thanks,
    Rohit

    you are calling wrong  the Service.
    ¿what kind of service do you have? RPC? Document?
    ir your target service its document, I recommend this:
    1. Test target service with OSB
    2. copy XML request and XML response from the test.
    3. use XML request format that you got at Step 2 in your source service and using it at your "Service Callout".

  • Suspend 20 Iterations Error in Soap Assess Response (ODS)

    OPA Experts,
    I'm trying to replace the default error message you receive when the inferencing cycle has errored-out after 20 iterations. I'm restricted to using ODS and none of the features of OWD. Using Java framework.
    I've encountered this several times before and was able to stop via error() in the rules, but for this particular instance (see below), I can throw the error and view both this and the 20 iterations message in OPM (20 iterations in red box at top of OPM interface and custom error message in output window), but the soap assess response presents the 20 iterations (ThinkException) message and nothing else.
    "This particular instance" means an illegal attribute value and relationship population in the same entity. E.g. TaxReturn entity --> <attribute>tax_filing_status = "Single" and <relationship>tax_filing_spouse populated. A person filing a tax return can only have a tax_filing_spouse populated when they have a tax_filing_status of "Married Filing Jointly".
    What I've tried so far:
    Catching and throwing the error via rules
    OnReturnResultEvent
    InferencingListener
    SoapServerException
    ThinkException override (which isn't really possible but I thought I'd try anyway )
    OnBeforeThinkEvent
    The request, in all of the above cases, only touches my empty constructors and none of my methods.
    Here's one example (among many) of my log4j log (edited for space and readability purposes):
    ========================================================================================
    388 [http-127.0.0.1-9000-Processor4] INFO  com.oracle.util.plugins.PluginRegistry  - Successfully created plugin factory: handleIllegalTaxRequest.HandleIllegalTaxRequest
    8509 [http-127.0.0.1-9000-Processor2] INFO  com.oracle.determinations.engine.Session  - User setting attribute i_return_filing-status, entity taxreturn, instance name 54f63ed31435527aebb709fac1417c00, session 1 to value 1
    21080 [http-127.0.0.1-9000-Processor2] INFO  com.oracle.determinations.engine.Session  - Engine inferring attribute o_per_pend-person, entity person, instance name SELF1120128911, session 1 to value true
    21080 [http-127.0.0.1-9000-Processor2] INFO  com.oracle.determinations.engine.Session  - Finishing inferencing on session 1
    21081 [http-127.0.0.1-9000-Processor2] TRACE com.oracle.determinations.ocs.UnknownMemberListener  - In UnknownMemberListener
    21083 [http-127.0.0.1-9000-Processor2] ERROR com.oracle.determinations.server.services.AbstractNativeService  - Could not reach a determination for rulebase 'FakeNameOfRulebase'. Reason: Think cycle has not stabilised after 20 iterations.  This is probably due to a fault in the inferencing listener.
    com.oracle.determinations.server.exceptions.ThinkException: Could not reach a determination for rulebase 'FakeNameOfRulebase'. Reason: Think cycle has not stabilised after 20 iterations.  This is probably due to a fault in the inferencing listener.
      at com.oracle.determinations.server.assess.AssessEngine.assess(AssessEngine.java:147)
      at com.oracle.determinations.server.services.assess.AssessAction.process(AssessAction.java:67)
      at com.oracle.determinations.server.services.AbstractNativeService.processRequest(AbstractNativeService.java:119)
      at com.oracle.determinations.server.DSServlet.doPost(DSServlet.java:103)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879)
      at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
      at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
      at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
      at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
      at java.lang.Thread.run(Thread.java:722)
    ========================================================================================
    None of the inferencing responses in any of my logs present "tax_filing_spouse" relationship...so I must assume it's getting hung up on this. If I change the tax filing status in the request, I get the correct assess response with 0 errors. I tried getDecisionReport() of InferencingEvent to verify, but as mentioned above, only my constructors are being touched and none of my methods.
    Now, I could be approaching this incorrectly in my Java code, or there could be a way to catch and suspend this in the rules, but I've extended the capacity of my efforts and am about ready to throw my laptop out of the window. Any help would be greatly appreciated. I really need it!!!!
    v/r
    Mike

    Hi Mike,
    I'm not really sure what you want to achieve, this error message means that your assessment results are invalid and none of the conclusions can be relied upon so you really need to fix the rules themselves. This error can be caused by a loop in the rule logic as well as a a problem with an inferrencing listener (as suggested in the error message). You can check for rule loops in OPM and / or use visual inspection as you know which attribute / value triggers the problem.
    If you could share your rulebase and the source code for your UnknownMemberListener that may shed some light on the issue.
    If you really need to change the error message to you SOAP clients you may need to implement a custom service but this is unlikely to be trivial.

  • SOAP XML Response in the form of JSP

    Hi,
    I am using a command in Websphere Commerce(WC) as "WebServices Provider " .For new users command is WC specific java program which takes input and throws back the result to the calling program.
    when a client sends a SOAP xml request to WC WebService Command,it sends back the SOAP XML response in the form of JSP to client.The Client is in Microsoft .Net language.
    My Question is:
    1)How the client is interpreting the SOAP XML response in JSP.
    2)Since the client being a .Net provider,to understand this response,he has to make any extra
    configuration ???
    Can somebody in the forum can help me in this regard.
    Thanks
    Mike

    Hi Mike1999 ,
    I am assigned with one project that is based on SOAP,I dont know abc of this technology.How the events are handled by SOAP....Etc Etc....
    Just eloberate What is ment by SOAP.Why it is used.

  • Org.apache.soap.rpc.Call is hanging on invoke()...

    Hi.
    What do you do when you're making a call to a webservice with
    org.apache.soap.rpc.Calland it just plain hangs on the Call.Invoke() method?
    -pfv

    Hi.
    What do you do when you're making a call to a webservice with
    org.apache.soap.rpc.Calland it just plain hangs on the Call.Invoke() method?
    -pfv

  • BEA-382500: ALSB Service Callout action received SOAP Fault response

    Hi Friends...
    <BR>
    <BR>
    <BR>
    During the implementation of TUTORIAL: 2 Loan Example of AquaLogic Service Bus 2.1,
    I am getting fault response when testing the Proxy Service. Please help me in the following....
    <BR>
    <BR>
    <BR>
    <b>BEA-382500: ALSB Service Callout action received SOAP Fault response</b>
    <BR>
    <BR>
    <BR>
    <b>error: failed to load java type corresponding to t=LoanStruct@java:normal.client</b>
    <BR>
    at
    <BR>
    <BR>
    <BR>
    <BR>
    com.bea.staxb.runtime.internal.FailFastErrorHandler.add(FailFastErrorHandler.java:45)
    at com.bea.staxb.runtime.internal.MarshalStreamUtils.addError(MarshalStreamUtils.java:274)
    at com.bea.staxb.runtime.internal.MarshalStreamUtils.addError(MarshalStreamUtils.java:249)
    at com.bea.staxb.runtime.internal.UnmarshalResult.addError(UnmarshalResult.java:140)
    at com.bea.staxb.runtime.internal.UnmarshalResult.addError(UnmarshalResult.java:124)
    at com.bea.staxb.runtime.internal.UnmarshalResult.getPojoBindingType(UnmarshalResult.java:327)
    at com.bea.staxb.runtime.internal.UnmarshalResult.getPojoTypeFromXsiType(UnmarshalResult.java:310)
    at com.bea.staxb.runtime.internal.RuntimeBindingType.determineActualRuntimeType(RuntimeBindingType.java:256)
    at com.bea.staxb.runtime.internal.UnmarshalResult.unmarshalType(UnmarshalResult.java:210)
    at com.bea.staxb.runtime.internal.SoapUnmarshallerImpl.unmarshalType(SoapUnmarshallerImpl.java:93)
    at weblogic.wsee.bind.runtime.internal.EncodedDeserializerContext.unmarshalType(EncodedDeserializerContext.java:66)
    at weblogic.wsee.bind.runtime.internal.BaseDeserializerContext.internalDeserializeType(BaseDeserializerContext.java:170)
    at weblogic.wsee.bind.runtime.internal.BaseDeserializerContext.deserializeType(BaseDeserializerContext.java:87)
    at weblogic.wsee.codec.soap11.SoapDecoder.decodePart(SoapDecoder.java:401)
    at weblogic.wsee.codec.soap11.SoapDecoder.decodeParams(SoapDecoder.java:236)
    at weblogic.wsee.codec.soap11.SoapDecoder.decodeParts(SoapDecoder.java:163)
    at weblogic.wsee.codec.soap11.SoapDecoder.decode(SoapDecoder.java:116)
    at weblogic.wsee.codec.soap11.SoapCodec.decode(SoapCodec.java:136)
    at weblogic.wsee.ws.dispatch.server.CodecHandler.decode(CodecHandler.java:138)
    at weblogic.wsee.ws.dispatch.server.CodecHandler.handleRequest(CodecHandler.java:39)
    at weblogic.wsee.handler.HandlerIterator.handleRequest(HandlerIterator.java:127)
    at weblogic.wsee.ws.dispatch.server.ServerDispatcher.dispatch(ServerDispatcher.java:85)
    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:165)
    at weblogic.wsee.server.servlet.BaseWSServlet.service(BaseWSServlet.java:84)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3214)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1983)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1890)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1344)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
    <BR>
    Message was edited by:
    alwaysvaghu
    Message was edited by:
    alwaysvaghu

    I've been getting this problem as well. However, the thing that confuses me is that if I use the command-line client (as described in the tutorial), everything seems to work fine. However, if I use the test console, it fails to work (giving the fault described in an ancestor of this post).
    I've tried added a 'Rename' operation, but I just get the java1 namespace as well.
    If the problem was just the namespace issue as stated, wouldn't the command-line client have a similar problem?

  • WSDP w/ Apache SOAP-RPC

    Hi,
    Has anyone tried to develop/deploy a web service under WSDP and invoke it from a client app written under Apache SOAP-RPC? Can this be done w/ or w/o 'axis'
    from Apache-SOAP?
    Thanks,
    Marcia

    yes, this can be done ...and even vice versa.
    This is just a soap call and it dees not matter from where it is called.
    Generate the webservice and deploy it. Use the WSDL generated to create the client with Apache Soap. Point to the end point URL for the webservice made with JAX-RPC.
    I tried by creating a webservice with Apache Soap-RPC and accessing through the client made with Jax-RPC.
    regards

  • Failing silently when trying to construct org.apache.soap.rpc.SOAPContext

    OK This is really weird. I have an app that runs fine in eclipse. I have deployed to using webstart but when I try to instantiate org.apache.soap.rpc.SOAPContext default constructor it fails.
    All my jars are signed and I have given all permissions in the jnlp
    here is the jnlp
    <?xml version="1.0" encoding="utf-8"?>
    <jnlp spec="1.0+" codebase="http://cs12895.adm.bju.edu/dc" href="dc.jnlp">  
         <information>     
              <title>DC App</title>     
              <vendor>Bob Jones University</vendor>     
              <homepage href="http://www.bju.edu"/>     
              <description kine="one-line">The Discipline Committee Application</description>     
              <description kind="short">The Discipline Committee Application</description>            
               <icon href="imageIcon.gif"/>     
               <shortcut online="false">     
               <desktop/>     
               </shortcut>    
               <offline-allowed/>  
          </information>  
          <security>     
              <all-permissions/>  
          </security> 
         <resources>     
              <j2se version="1.5+" max-heap-size="256m"/>
              <jar href="dc.jar"/>          
              <jar href="looks-2.0.2.jar"/>     
              <jar href="log4j-1.2.12.jar"/>         
              <jar href="jdnc20060529003752.jar"/>        
              <jar href="hibernate3.jar"/>        
              <jar href="forms-1.0.7.jar"/>                   
              <jar href="soap.jar"/>
              <jar href="swingx20060529003241.jar"/>
         </resources>  
         <application-desc main-class="edu.bju.dc.rich.LoginFrame"/>
    </jnlp>Here is the code. In this cod ethe first debug messageI see but i do not see the second message. Which is how I now it is not getting constructed.
         log.debug("Setting up call to auth ws");
        Call call = new Call();
        log.debug("Finished setting Call up");
        String soapActionURI = "urn:AuthService";

    OK I got it working. It was not throwing an exception but when I put I try catch looking for throwables I discovered it was looking for mail.jar. So all better now :-)

  • The configuration does not correspond to a SOAP RPC WSDL

    Hi,
    When in my proxy service I amd trying to make a service callout to my business service which is based on a third party wsdl (hence cannot be changed), i get the following error.
    "The configuration does not correspond to a SOAP RPC WSDL. The WSDL of the target service may have changed making the configuration out of sync. Please edit the Service Callout to fix the configuration."
    My wsdl operation --> style is of type rpc.
    Regards,
    Rahul.

    Hi,
    Have a look at the binding of your WSDL... a SOAP RPC WSDL should have
    <soap:binding style="rpc"... and not
    style="document"...The wsdl may be just out-of-sync, right button click at the parent folder and refresh will solve the problem...
    Cheers,
    Vlad

  • OTN Live Web Services problem, mismatched WSDLs and Soap RPC reply

    I've tried to connect to all those OTN Live Web Services using webMethods and found there might be a mismatched WSDLs and Soap RPC problem in Oracle side. There is a discussion thread of this: http://www.wmusers.com/wmusers/messages/116/904.shtml
    Is there anyone out there encounters the same problem and agree that Oracle should fix this ? Thanks a lot in advance.

    Hi Mike,
    I've just downloads all 5 WSDL and tried each single one of them again. The following are the results of the test.
    Result (OK): this is the success case
    Result (0): this is the "OTN Authentication Failure" and I cannot tell if it works if input is correct.
    Result (1): this is the error I've mentioned in the previous message and I'll give you more details later.
    Result (2): this is the "No Serializer found" exception:
    java.lang.IllegalArgumentException: No Serializer found to serialize a
    'org.w3c.dom.Element' using encoding style 'http://schemas.xmlsoap.org/soap/encoding/'.
    -- IOTNMobileWrapperPortType
    getStatusByMsgID (OTN Authentication Failure)
    getStatusesByMsgIDs (1)
    getSupportedTransports (1)
    getVersion (1)
    sendText (1)
    sendTextMsg (1)
    -- OTNDeptEmpPortType
    getDeptInfoArray (OK)
    getDeptInfoXML (2)
    getDeptNoArray (OK)
    getDeptXML (2)
    getEmpInfoArray (OK)
    getEmpInfoXML (2)
    getEmpNoArray (OK)
    getEmpXML (2)
    -- IOTNGUIDGeneratorPortType
    getGUID (1)
    -- IOTNHelloWorldPortType
    getAvailableLanguages (1)
    getDefaultHelloWorld (1)
    getHelloWorld (1)
    -- IOTNNewsPortType
    getRss (1)
    Let me explain what happens in error case (1):
    webMethods construct the "targetOutSignature" for the client base on the WSDL.
    After the reply message retrieved, it tries to "conform" (validate) it against the "targetOutSignature".
    Whenever I get this exception, I can open the exception details and actually see that the reply xml has been received but with the error message of "Output parameters do not conform to targetOutputSignature".
    If I manually remove the "targetOutputSignature" from the generated client, so that webMethods won't try to "conform" the reply message against the one described in the original WSDL, it works perfectly.
    I hope this helps. Please let me know if there is any other information I can provide.
    Thanks.
    - Louis

  • Create WSDL from SOAP request, response and endpoint URL

    We have a program that does not create WSDL for us but we do have a SOAP request, response XML file and the endpoint URL as well.
    How can I create WSDL file from these?
    If that is not possible, how can I create a Java web service client (JEE 5.0) when I have only the SOAP request and response XML and the endpoint URL? Some tutorial or any explanation to point me to the right direction would be highly appreciated.
    Thank you very much,
    Genti

    The endpoint is:
    http://servername/appname/service/rpcrouter
    and we have SOAP request and repsonse that we can build from the application but also the documentation that is provided
    The documentation says about the web service:
    Built on top of a pre-Axis version of Apache SOAP
    No WSDL support
    Uses literal encoding for Web Service calls
    Adding WSDL at the end of the endpoint does nothing at this point.
    Thank you for the reply though,

  • BASH: iterate  through an array  passed in

    I have the following function that does not iterate through the array I want to be able to do some maanipulation on each element in the array[@] Any ideas whats wrong with the below for loop ????
    function foo() {
    name =$1
    array=( "$2" )
    for i in `seq 0 $(( ${#array[@]} - 1 ))`; do
    echo "$i: ${array}"
    echo "./prog $name ${array[i]}"
    done
    NAME ="BLAH"
    arrayP+=("TEST") ;
    arrayP+=("TESTB")
    arrayP+=("TESTC")
    foo $NAME "${arrayP[@]}"
    Edited by: user618557 on 19-May-2011 12:57

    Your code needs a small correction in order to work, at least when I tried:
    foo "${name}" "${array[@]}"
    should read
    foo "${name}" "${arrayP[@]}"However, I would use a different approach, which is perhaps also not as ugly:
    #!/bin/bash
    foo() {
       name="$1"
       for i in $2; do
       set -- $i
       echo "$name $*"
    done
    name="BLAH"
    arrayP+=("TEST")
    arrayP+=("TESTB")
    arrayP+=("TESTC")
    foo "$name" "${arrayP[*]}"gives:
    $ ./allarray
    BLAH TEST
    BLAH TESTB
    BLAH TESTCI used this also in the previous thread BASH 3.2.25 multidemsional arrays which however, apparently wasn't helpful.

  • Weblogic 10.3 - Arrays and JAX-RPC Web Services

    We are currently looking at migrating from WL 8.1 to WL 10.3, and have an issue with some of our web services (JAX-RPC) with regards to returning String arrays.
    We have a web service method that returns a response object. This response object has many properties that includes a property that is a String array. So the code looks something like this (this is a simplified version):
    <em>public class OurService
    @RemoteMethod
    @WebMethod
    @WebResult(name = "result")
    public ResponseObject lookup(String someParam)
    // build the object and its properties here...
    return responseObject;
    }</em>
    This is what the response object looks like:
    <em>public class ResponseObject
    private String[] someProperty;
    public String[] getSomeProperty()
    return this.</em><em>someProperty</em><em>;
    public void setSomeProperty(String[] </em><em>someProperty</em><em>)
    this.</em><em>someProperty</em><em>= </em><em>someProperty</em><em>;
    }</em>
    So the issue is this. In WL 8.1, the web service generator would recognise the fact that the response object had a property that was a String array and would declare as such in the WSDL file, for example:
    <em><strong> &lt;xsd:element xmlns:tp="java:language_builtins.lang" type="<font color="#ff0000">tp:ArrayOfString</font>" name="someProperty" minOccurs="1" nillable="true" maxOccurs="1"&gt;
    &lt;/xsd:element&gt;
    </strong></em>
    As a result, when the service is called, the property is returned in the SOAP response like this:
    <strong>.
    </strong>
    <div class="e">
    <div class="c" style="margin-left: 1em; text-indent: -2em">
    <em><strong> <span class="m">&lt;</span><span class="t">someProperty</span><span class="t"> soapenc:arrayType</span><span class="m">="</span></strong><strong>xsd:string[2]<span class="m">"</span><span class="m">&gt;</span></strong></em>
    </div>
    <div>
    <div class="e">
    <div>
    <em><strong><span class="b"> </span><span class="m">&lt;</span><span class="t">string</span><span class="t">
    xsi:type</span><span class="m">="</span></strong><strong>xsd:string<span class="m">"</span><span class="m">&gt;</span><span class="tx">string1</span><span class="m">&lt;/</span><span class="t">string</span><span class="b">&gt;
    &lt;string xsi:type="xsd:string"&gt;string2&lt;/string&gt;
    </span><span class="m">&lt;/</span><span class="t">someProperty</span><span class="m">&gt;</span></strong></em>
    </div>
    </div>
    </div>
    </div>
    <strong>.
    </strong>
    But, in WL 10.3, the WSDL entry is:
    <em><strong> &lt;xs:element maxOccurs="unbounded" minOccurs="0" name="InstepCodes" nillable="true" type="xs:string"&gt;
    </strong></em>
    As a result the property is returned in the SOAP response like this:
    <strong> .
    </strong><strong><span class="m"> &lt;</span><span class="t">java:InstepCodes</span><span class="ns">
    xmlns:java</span><span class="m">="</span></strong><strong class="ns">java:com.myservice</strong><strong><span class="m">"</span><span class="m">&gt;</span><span class="tx">string1</span><span class="m">&lt;/</span><span class="t">java:InstepCodes</span><span class="m">&gt;</span>
    </strong><strong><span class="m"> &lt;</span><span class="t">java:InstepCodes</span><span class="ns">
    xmlns:java</span><span class="m">="</span></strong><strong class="ns">java:com.myservice</strong><strong><span class="m">"</span><span class="m">&gt;</span><span class="tx">string2</span><span class="m">&lt;/</span><span class="t">java:InstepCodes</span><span class="m">&gt;</span>
    </strong>The difference here is that WL 10.3 does not return the array of strings as a complex array type, just as a set of repeated elements.
    We need to return the array as we do for WL 8 in WL 10.3, because we have external clients that are parsing the response and looking for the XML in this format. We are not currently in a position to ask them to change.
    Is this a limitation of the JAX-RPC spec, or WL's implementation of it?
    If the service was to return a String array directly from a service method, then it is declared in the WSDL file.
    However, if a service returns an object that within itself has a property that is an array, it does not recognise it like it did with WL 8.1.
    <strong>
    </strong>
    <div class="e">
    </div>

    Thank you for the reply.
    We are using WL Server 8.1 (not Workshop), and moving to WL Server 10g R3.
    We are using the JWSC task to generate the service, which is:
    bq. weblogic.wsee.tools.anttasks.JwscTask+
    Here is an extract from the Ant build file the calls the task.
    &lt;jwsc
    srcdir="src/com/ourservice"
    sourcepath="src"
    destdir="${ear.dir}"
    verbose="false"
    debug="true"
    keepGenerated="true"
    classpathref="ws.class.path"&gt;
    +&lt;module name="${service.name}" explode="true"&gt;+
    +&lt;jws file="OurService.java" type="JAXRPC"/&gt;+
    +&lt;/module&gt;+
    +&lt;/jwsc&gt;+
    As stated in my first post, the service method returns an reponse object and its this that contains the array property. The service method itself does not return an array type. This seems to be the root of the problem, i.e. the declaration of array types is not being propagated down through the object graph the service method returns. Below is the code for the service and the response object.
    @FileGeneration(remoteClass = Constants.Bool.TRUE, remoteClassName = "OurService", localHome = Constants.Bool.TRUE, localHomeName = "OurServiceLocalHome", remoteHome = Constants.Bool.TRUE, remoteHomeName = "++OurService++Home", localClass = Constants.Bool.TRUE, localClassName = "++OurService++Local")+
    @JndiName(remote = "com.ourservice.++OurService++", local = "com.ourservice.++OurService++Local")+
    @Session(ejbName = "++OurService++", type = Session.SessionType.STATELESS, transactionType = Session.SessionTransactionType.CONTAINER, maxBeansInFreePool = "100", initialBeansInFreePool = "20", enableCallByReference = Constants.Bool.TRUE, homeIsClusterable = Constants.Bool.TRUE, homeLoadAlgorithm = Constants.HomeLoadAlgorithm.ROUND_ROBIN, isClusterable = Constants.Bool.TRUE, beanLoadAlgorithm = "RoundRobin", defaultTransaction = Constants.TransactionAttribute.SUPPORTS)+
    +@RoleMappings( { @RoleMapping(roleName = "Admin", externallyDefined = Constants.Bool.TRUE),+
    +@RoleMapping(roleName = "Monitor", externallyDefined = Constants.Bool.TRUE),+
    +@RoleMapping(roleName = "JMS", externallyDefined = Constants.Bool.TRUE) })+
    @WebService(name = "OurServicePort", serviceName = "OurService", targetNamespace = "http://www.ourservice.com/SOA/OurService+_service")+
    +@SOAPBinding(style = SOAPBinding.Style.RPC, use = SOAPBinding.Use.LITERAL)+
    @WLHttpTransport(contextPath = "OurService", serviceUri = "OurService", portName = "
    *OurService+Port")+
    public class OurService
    +{+
    @RemoteMethod
    @WebMethod
    @WebResult(name = "result")
    {color:#ff0000}public ResponseObject lookup(String someParam){color}
    // build the response object...
    return {color:#ff0000}responseObject{color};
    +}+
    This is what the response object looks like:
    public class ResponseObject
    +{+
    private String[] someProperty;
    +public {color:#ff0000}String[] getSomeProperty(){color}+
    +{+
    return this.someProperty;
    +}+
    public void setSomeProperty(String[] someProperty)
    +{+
    this.someProperty = someProperty;
    +}+
    +}+
    From all of this I cant tell how we get the WSDL file to delcare it as an array type, as shown in the JAX-RPC 1.1 spec you mentioned, based on the code we have and the JWSC build task we are using.
    (I appologise for the formatting of this message. It seems to want to insert + everywhere in the code examples, despite me removing them!)
    Edited by: user8013492 on 11-Dec-2008 02:09
    Edited by: user8013492 on 11-Dec-2008 02:11

  • SOAP-RPC-MESSAGE-question

    Hi all, i already posted this in "performance" group also. I have 3
    question.
    1. What will be the stability or what will happen if thousands of Client
    request hits the Soap-Servlet(that parses the client's soap xml message) at
    one point of time in both RPC(Remote Procedure call) and Message-style
    weblogic web-service structure? Is it going to create thousands of
    Soap-servlets(One soap-servlet per call)? If one soap-servlet handles
    everything, then what will be its scalability and performance?
    2. How will be the response or what will be the response send back to the
    client in Message-style webservices when the soap-servlet finds an error in
    the XML message comming from a client? Because Message-style is one-way. If
    we need response, then we have to create a seperate webservice call using
    seperate client, soap-servlet, jms queue. So, how come the response client
    waiting for the message get the response if any error happens on the
    soap_servlet of the client request?
    3. Should always the StatelessSessionBean be the entry point in RPC style?
    Why not an entitybean directly? Why statelessSessionbean only?
    4. Is there more details about this in the documentation other than this
    "http://e-docs.bea.com/wls/docs61/index.html" site?
    Thanks in Advance
    Elangovan

    Yes I think your app will perform better using remote objects, there's 
    a great app to test that named Census you can get it and do your own 
    tests or play with it on James Ward's blog.
    Sincerely,
    Michael
    El 22/04/2009, a las 12:24, ijmarrero <[email protected]> escribió:
    >
    We are developing a middle sized application using Flex and Axis 
    Webservices. On the client side we AS code generated using Flex 
    Builder 3.0 and the WSDL. On the server side we have Java  code 
    generated with Axis 1.3 using the same WSDL. The problems occurs 
    when the server sends a 290Kb response to the Client. Flex spends 10 
    seconds (obtained from mx.rpc.* log facility) in deserialing this 
    SOAP message. My question is:
    >
    ¿Could I improve the performance of the deserialization?
    >
    Due to the fact that this is an unaceptable delay and that we have a 
    code of 70.000 lines ¿what choices we have? ¿Should we use remote ob
    jects?
    >
    Thank you
    >

  • Use Array in JAX-RPC

    I want to send an array as parameter in the client of the JAX-RPC,how can I write the code?
    Here is my code,but it has some errors.
    int[] temp=new int[2];
    temp[0]=1;
    temp[1]=2;
    QName QNAME_TYPE_OBJECT = new QName("http://schemas.xmlsoap.org/soap/encoding/", "Array");
    call.addParameter("param", QNAME_TYPE_OBJECT,temp.getClass(), ParameterMode.PARAM_MODE_IN);
    Object[] params = {temp};
    String result = (String)call.invoke(params);
    How can I send the temp array correctly?
    thank you very much!

    In addition ,I find that if I change the parameter from int[] to String[],everything is ok!
    here is the code:
    String[] words = {"it", "was", "a", "dark", "and",     
    "stormy", "night"};
    QName QNAME_TYPE_OBJECT = new QName("http://schemas.xmlsoap.org/soap/encoding/", "Array");
    call.addParameter("param", QNAME_TYPE_OBJECT,words.getClass(), ParameterMode.PARAM_MODE_IN);
    Object[] params = {words};
    String result = (String)call.invoke(params);
    why?what I happenend?And I find that the error is that ClassCastError,i.e.
    String[] can be casted into Object[],but int[] can't,so the error occured.(I know this process by decompiling the class file).
    but the tutorial says JAX-rpc supports the int[],is it wrong?

Maybe you are looking for

  • BPM Exception Handling

    I am trying to test my Deadline and Exception handling.But it is not at all working. I will explain what I have done, please guide me where I am going wrong. 1) Block Step. Properties --- Exception == ERROR1 2)Switch Step . Success Branch . Send Step

  • Can't find Workshop for Struts Tour Project

    I've downloaded Workshop Studio, but I can't locate the tour project. I don't see it at Help>Welcome>Workshop. Should it be there? Thanks.

  • Matrix row focus

    Hey All, Can anyone tell me how I can set the focus of my matrix to the most recent row that was added to my UDO? I have a UDO that could have a few hundred line items and I want to move the screen to the most recent line item so that the user does n

  • Need help with video card for my dual 1.8 G5

    Ok, I've spent the last hour and a half searching around and really haven't found what I was looking for, although, it's probably right under my nose and I'm a moron. Anyways, here goes... I have a dual 1.8 G5 and I'd like to add an extra video card.

  • Updating XML prior to XSLT transformation

    I am attempting to convert an XML document using XSLT but I need to transform it a bit beforehand. Does anyone have a suggestion as to how to do this? Below is the logic that will transform the XML directly from the file, but I need to manipulate it