Optional parameters to webservice method over FORM-GET

Hi.
I'm developing a proof of concept webservice using Workshop and my test method looks something like this:
     * @common:operation
     * @jws:protocol soap-style="rpc" http-xml="false"
        form-post="true" http-soap="true"
    public void foobar(
        String param1, String param2, String param3)
    }The schema elements I map to the parameters specifies that they are optional.
There are no problems when using this as a webservice - I'm able to specify these optional parameters (or not). When I invoke this using FORM-GET, it seems that these parameters are all required (although I can specify an empty value).
E.g. The following works fine:
http://localhost:7001/TestWebService/Test.jws?param1=abc&param2=def&param3=ghi
The following works fine and calls my code with param1 being an empty string:
http://localhost:7001/TestWebService/Test.jws?param1=&param2=def&param3=ghi
The following returns an error:
http://localhost:7001/TestWebService/Test.jws?param2=def&param3=ghi
The error is: "Unable to transform query arguments to Java arguments Parameter 'param1' - No value found"
Can anyone advise on how to not require the presence of optional parameters using FORM-GET?
Regards,
Michael.

Hi,
thanks for the quick turn-around. Jdev version that i am using is Studio Edition Version 11.1.1.6.0. And i am using SOAP. Isnt there a way without using a backing bean? I am planning to use it as a portlet. Would'nt creating a backing bean cause a problem in that case?? Also i am confused here . The method that i am dragging is GET_ACCOUNTOperation(Object). I tried passing the hashmap . It gave the following exception :
javax.el.MethodNotFoundException: Method not found: GET_ACCOUNTOperation.execute(java.util.HashMap)
Rampal

Similar Messages

  • ABAP Webservice expecting Optional parameters

    Hi,
    I have developed an ABAP web service from an existing RFC which calculates the prices of products. I am trying to test the same and I have various mandatory and optional parameters. Somehow the web service is expecting for Optional parameters and it is checking for every parameter from the deep structures also. When I try to test the RFC from SE37, it doesn't ask for an optional parameters.  
    Thanks to help me on why the web service is expecting the optional parameters.  
    Regards,
    Aruna.

    Hi,
    Yes, processing all those exceptions (say, by catching them into lx_ex type cx_root) and outputting the error messages using message lx_ex type 'E' would not hurt and may actually help to understand what's wrong, isn't it?
    cheers
    Jānis

  • Passing Parameters via Post Method from Webdynpro Java to a web application

    Hello Experts,
    I want to pass few parameters from a web dynpro application to an external web application.
    In order to achieve this, I am referring to the below thread:
    HTTP Post
    As mentioned in the thread, I am trying to create an additional Suspend Plug parameter (besides 'Url' of type String) with name 'postParams' and of type Map.
    But when I build my DC, I am getting the same error which most of the people in the thread have mentioned:
    Controller XXXCompInterfaceView [Suspend]: Outbound plug (of type 'Suspend') 'Suspend' may have at most two parameters: 'Url' of type 'string' and 'postParams' of type 'Map'.
    I am using SAP NetWeaver Developer Studio Version: 7.01.00
    Kindly suggest if this is the NWDS version issue or is it something else that I am missing out.
    Also, if it is the NWDS version issue please let me know the NWDS version that I can use to avoid this error.
    Any other suggestion/alternative approach to pass the parameters via POST method from webdynpro java to an external web application apart from the one which is mentioned in the above thread is most welcome.
    Thanks & Regards,
    Anurag

    Hi,
    This is purely a java approach, even you can try this for your requirement.
    There are two types of http calls synchronous call or Asynchronous call. So you have to choose the way to pass parameters in post method based on the http call.
    if it is synchronous means, collect all the values from users/parameters using UI element eg: form and pass all the values via form to the next page is nothing but your web application url.
    If it is Asynchronous  means, write a http client in java and integrate the same with your custom code and you can find an option for sending parameters in post method.
    here you go and find the way to implement Asynchronous  scenario,
    http://www.theserverside.com/news/1365153/HttpClient-and-FileUpload
    http://download.oracle.com/javase/tutorial/networking/urls/readingWriting.html
    http://digiassn.blogspot.com/2008/10/java-simple-httpurlconnection-example.html
    Thanks & Regards
    Rajesh A

  • Passing input parameters to the method call in ADF task flow.

    Hi,
    I have the following use case:
    There is a task flow with 2 jspx pages. In the first page I have 2 input search parameters and search button. the search button calls the webservice data control execute (GET_ACCOUNTOperation) method .
    Displaying the search results in the same page is not a problem , but my requirement is that the search results are to be displayed in the second page in tabular form.
    To achieve this, I dragged the execute method as the method call in the task flow and specified the input parameters for the method call (right click and add parameters) . I am getting the following exception :
    javax.el.MethodNotFoundException: Method not found: GET_ACCOUNTOperation.execute(java.lang.String, java.lang.String)
         at com.sun.el.util.ReflectionUtil.getMethod(Unknown Source)
         at com.sun.el.parser.AstValue.getMethodInfo(Unknown Source)
         at com.sun.el.MethodExpressionImpl.getMethodInfo(Unknown Source)
         at oracle.adf.controller.internal.util.ELInterfaceImpl.getReturnType(ELInterfaceImpl.java:214)
         at oracle.adfinternal.controller.activity.MethodCallActivityLogic.execute(MethodCallActivityLogic.java:135)
         at oracle.adfinternal.controller.engine.ControlFlowEngine.executeActivity(ControlFlowEngine.java:1035)
         at oracle.adfinternal.controller.engine.ControlFlowEngine.doRouting(ControlFlowEngine.java:921)
         at oracle.adfinternal.controller.engine.ControlFlowEngine.doRouting(ControlFlowEngine.java:820)
         at oracle.adfinternal.controller.engine.ControlFlowEngine.routeFromActivity(ControlFlowEngine.java:552)
         at oracle.adfinternal.controller.engine.ControlFlowEngine.performControlFlow(ControlFlowEngine.java:148)
         at oracle.adfinternal.controller.application.NavigationHandlerImpl.handleAdfcNavigation(NavigationHandlerImpl.java:109)
         at oracle.adfinternal.controller.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:78)
         at org.apache.myfaces.trinidadinternal.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:43)
         at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:130)
         at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190)
         at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
         at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:889)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:379)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:194)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
         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:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
    even though the execute method is there and the service is up and running. I am not sure whether its the correct way of doing it. Please shed some light on how to solve this use case
    Some additional info:
    Under the data controls pallete, the GET_ACCOUNTOperation method has a parameters section , which has "part" (java.lang.Object) as
    the input parameter.
    Regards,
    Rampal

    Hi,
    thanks for the quick turn-around. Jdev version that i am using is Studio Edition Version 11.1.1.6.0. And i am using SOAP. Isnt there a way without using a backing bean? I am planning to use it as a portlet. Would'nt creating a backing bean cause a problem in that case?? Also i am confused here . The method that i am dragging is GET_ACCOUNTOperation(Object). I tried passing the hashmap . It gave the following exception :
    javax.el.MethodNotFoundException: Method not found: GET_ACCOUNTOperation.execute(java.util.HashMap)
    Rampal

  • Non Optional Parameters

    Hello,
    I am trying to design a fillable form for our payroll department to calculate payroll adjustments. I am using a OLEDB Database connection to our SQL Server and grab information from a stored procedure. I want the form to populate certain fields when the user passes the check # parameter to the stored procedure.
    My problem is that I can't figure out how to pass the parameter. When I set up the data connection in the form, I get an error message that "Stored procedure has non-optional parameters".
    How can I design the form to allow the user to pass this parameter before the form loads so that the check informtion is displayed in the form?

    Hi,
    As far as I know InDesign takes flat files or XML. Conversion may be required in database before input.
    Imran

  • XML Deserialization Error when calling WebService-method

    Hi all,
    when calling a WebService-method from my WebDynpro-application, I get the following error message:
    "Deserializing fails. Nested message: XML Deserialization Error. Can not create instance of class [com.karmann.ApplMan.dto.SoftwareKomponenteDTO] when deserializing XML type [urn:com.karmann.ApplMan.dto][SoftwareKomponenteDTO].."
    SoftwareKomponenteDTO is a class that I have implemented. It implements Serializable and overwrites the methods "equals()" and "hashcode()". It contains members of types long, String and java.sql.Date.
    The method I call needs an argument of type SoftwareKomponenteDTO. Other methods which return something of type SoftwareKomponenteDTO do not make any problems.
    The same error message appears when I test the WebService-method in the WebService-navigator. So I assume that the problem is not the way I call the method from WebDynpro.
    Thanks for help,
    Christoph

    Hi all,
    I found what my problem was. The complex type that I deliver to my method (i.e. SoftwareKomponenteDTO) must have a public constructor without parameters. I think that this is slightly confusing, because in the other direction (method delivers complex type as return value) this is not neccessary. Anyway, my problem's solved now.
    Regards,
    Christoph

  • Posting parameters with Webservice class

    HI,
    I'm trying to use the mx.services.webservice class to
    interrogate and use my .net services. Everything seems to work as
    documented with the exception of passing parameters. There is
    little documentation on how to pass parameters, but a few examples
    seem to indicate passing an ordered list as parameters to the
    method name. So my web service - GetTableOfContents expects a
    string parameter - SectionName. I assumed
    WS.GetTableOfContents("TheSectionName") would
    accomplish this, but on inspection of the request xml
    TheSectionName is not included in the xml. Below I've attached the
    webservices debug/info output so you can see what I mean. Note at
    the end the trace of the xml the webservice class builds for the
    request and note the request bit -
    <request><SectionName
    /></request> with a blank parameter tag.
    The parameter is being interpreted in some way by the
    webservices class as you can see at 2/4 10:34:7 SOAP : parameter -
    value - MySectionName, but it's not being in cluded in the xml
    immediately after. Anyone seen this behaviour and know what might
    be going wrong?

    Thankyou very much for your reply, Eric (both here and in the web services forum).
    The way I generate the web service is just to right click on the java file and say 'generate web service'. I can't seem to get at the code that is generated, but it appears that there is nothing in there that I can change to rename the classes.
    I may just live with it and refactor the existing client code to match the class names that are given.
    Tim

  • Detecting webservice methods signatures

    Hi,
    I'm searching for an elegant solution for the following problem:
    My application is a webservice client that will consume a webservice with some methods.
    let's suppose service interface has methods :
    public void methodA(String A, String B, String C);
    public void methodB(String D, String B, String E);my application will parse a String stream and figure out what method to call .if for example the string pattern is : methodA:A,valueA:B,valueB:C,valueC;then i'll need to call method :public void methodA(String A, String B, String C);I need to know what is an elegant and clean why to implement this feature. Note that i don't know the webservice methods signatures in advance!
    I guess i'll have to use java Reflection. I'm not sure what is a good solution for this problem .
    thanks for your help.
    NB: I posted this same topic at [coderanche.com|http://www.coderanch.com/t/441073/Web-Services/java/detecting-webservice-methods-signatures] but couldn't get responses.

    slowfly wrote:
    That is imo a very bad idea. That's no java problem, it's a communication problem. If the service providers can't provide you the interface or the wsdl, you can't code towards it. They also should provide you a test-environment, where you can test your client implementations. Everything else is just... not right...
    I'm just curious: Where comes the string stream from? And why don't you know the endpoint interface? There must be another approach.
    regards
    slowflythe webservice client i'm coding is part of a complex system with many components communicating through JMS and using Spring Managed beans.
    my plug-in will receive a command from an external provisioning system. i'll have to parse this command string then figure out what webservice method i'll need to call on remote webservice.
    i know this is weired. but my boss is not helpful. he can't yet get the WSDL from the customer and I have now to manage testing with dummy webservice methods without actually talking to real webservice.
    I want to know what is a good solution to Map the above String command Pattern into a java method . it seems like to be a Mapping from String Pattern to java method with arguments. the only problem is that i can't know the names of method parameters.and the command string pattern might contains method args in un-ordered state. so after collecting the method args (from command) i will need to figure out which one fits in the args list of webservice method.
    probably using method parameters annotations? does this means the WSDL should also contain the parameter annotaions?
    anyway i hope someone here can suggest me some good solution.
    thanks

  • WebService access over UDDI

    Hello,
    we have developed a szenario over SOAP-Adapter in XI (Send) for calling. Now we want use the uddi in the was to call the webservice. What we have to do? Creating a wsdl in configuration of course. But must we deploy something in uddi? What steps are to do to call the webservice direct over uddi?
    Thanks in advance,
    Frank

    There is no dynamic dns in the TC or AEBS.
    It depends on your setup, if the TC is the main router in your network, you maybe able to use some dyndns software on a computer in the network, although this seldom works as well as having the software on the router. If you have a different router and the TC is bridged then check that router for dyndns service. And you will need to port forward to the TC.
    There are lots of posts about getting external access. You would need to use one of those methods.

  • Declarative Security on Webservice Methods

    Hello,
    I'm new to Weblogic 8.1 server so this may be a stupid questiion. Throughout the
    docs it says that a security policy can be applied to methods of a web service
    to control who can call it. I've tried over and over to make this work and it
    seems that the default websevice security policy of allowing everyone access is
    broken. I've defined users and put them into groups and then used the admin console
    to create security policies that should only allow members of my admin group to
    call all webservice methods and another group users to call only a subset of methods.
    I have seen various problem scenarios.
    1. A user that is not in either the admin or users groups can call all of the
    methods without issue. The systems know about the user however because if I misspell
    the user's password, the system complains.
    2. A member of the users group has access to all of the methods. It seems like
    if the security policy allows members of a group to call any of the methods, they
    can call all of the methods.
    Because I couldn't get this to work I instead tried to apply security policy
    to the methods of the stateless session bean that implements the webservice. In
    this respect I was much more successful. Scenario 2 above went away and I could
    control who can call each method. Unfortunately, scenerio 1 still exists. A user
    that is not assigned any group membership can still access all of the methods.
    Anyone have an idea of what I am doing wrong or if this is a known issue with
    WL8.1?
    TIA,
    Craig Lindley

    Hi Craig,
    The questions are never stupid; sometimes the answers are however :-)
    This is a complex question and it is important to note that our web
    services are deployed as standard J2EE components, you secure them by
    using standard J2EE security procedures [1]. Since you are using access
    control security, be sure to review this section of the doc [2] and I
    would suggest that you also open a dialog with our great support team
    (http://support.bea.com or [email protected]) because it sounds like you
    are very close to to getting the right "magic" (roles, privs, policies,
    etc.) configured. Note there is also a security newsgroup [3] that may
    be of value.
    Hope this helps,
    Bruce
    [1]
    http://edocs.bea.com/wls/docs81/security/thin_client.html#1043568
    [2]
    http://edocs.bea.com/wls/docs81/webserv/security.html#1073530
    [3]
    http://newsgroups.bea.com/cgi-bin/dnewsweb?cmd=xover&group=weblogic.developer.interest.security
    craig lindley wrote:
    >
    Hello,
    I'm new to Weblogic 8.1 server so this may be a stupid questiion. Throughout the
    docs it says that a security policy can be applied to methods of a web service
    to control who can call it. I've tried over and over to make this work and it
    seems that the default websevice security policy of allowing everyone access is
    broken. I've defined users and put them into groups and then used the admin console
    to create security policies that should only allow members of my admin group to
    call all webservice methods and another group users to call only a subset of methods.
    I have seen various problem scenarios.
    1. A user that is not in either the admin or users groups can call all of the
    methods without issue. The systems know about the user however because if I misspell
    the user's password, the system complains.
    2. A member of the users group has access to all of the methods. It seems like
    if the security policy allows members of a group to call any of the methods, they
    can call all of the methods.
    Because I couldn't get this to work I instead tried to apply security policy
    to the methods of the stateless session bean that implements the webservice. In
    this respect I was much more successful. Scenario 2 above went away and I could
    control who can call each method. Unfortunately, scenerio 1 still exists. A user
    that is not assigned any group membership can still access all of the methods.
    Anyone have an idea of what I am doing wrong or if this is a known issue with
    WL8.1?
    TIA,
    Craig Lindley

  • Call a  Webservice method from DotNetApplication

    Hi all,
    I have created One web service using Axis. My WebServices are below:
    import java.util.*;
    public class NHLService {
      HashMap standings = new HashMap();
      public NHLService() {
        // NHL - part of the standings as per 04/07/2002
        standings.put("atlantic/philadelphia", "1");
        standings.put("atlantic/ny islanders", "2");
        standings.put("atlantic/new jersey", "3");
        standings.put("central/detroit", "1");
        standings.put("central/chicago", "2");
        standings.put("central/st.louis", "3");
      public String getCurrentPosition(String division, String team) {
        String p = (String)standings.get(division + '/' + team);
        return (p == null) ? "Team not found" : p;
    }Its name is NHLService.jws. Then I run this service in my localhost like this "http://localhost:8080/axis/NHLService.jws" It is running and show that
    There is a Web Service here
    Click to see the WSDL Now I can view the wsdl. Now I want to call this webservice method from DotNet Application.Please any one knows that can you guide me the steps.
    Thanks in Advance,
    Raj

    but i don't understand a thing...
    when i create a static stub client i link with the config-wsdl file the path of my webservices wdsl and the client compile and run well...
    why with the servlet i had to link .class file or jar file??
    thanks a loto

  • How to call a WebService method using HttpsURLConnection?

    Hi,
    I want to know how i could use HttpsURLConnection to call a WebService method.
    I can use the following:
    String endpoint = "https://xyz:8443/axis/services/MSecurity";
    System.setProperty("javax.net.ssl.keyStore", keyStorepath);
    System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
    System.setProperty("javax.net.ssl.keyStorePassword", keyStorePassword);
    System.setProperty("javax.net.ssl.trustStore", trustStorePath);
    System.setProperty("javax.net.ssl.trustStoreType", "JKS");
    System.setProperty("javax.net.ssl.trustStorePassword", trustpass);
    //Call Web Service
    URL url = new URL(endpoint);
    MSecuritySoapBindingStub service = new MSecuritySoapBindingStub(url, null);
    //get list of people
    String[] vo = service.getVO();
    for (int i = 0; i < vo.length; i++) {
    System.out.println(vo);
    However, loading my cert. this way is not flexible. Therefore, I am using SSLContext to initialize my keystore and truststore and then I am using the following to connect to my webservice:
    SSLContext sc = SSLContext.getInstance("SSLv3");
    sc.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
    SSLSocketFactory ssf = sc.getSocketFactory();
    URL url = new URL(endpoint);
    HttpsURLConnection htp = (HttpsURLConnection) url.openConnection();
    htp.setSSLSocketFactory(ssf);
    However, I do not know how I could use the "htp" object to call the getVO() method above.

    Use Apache Axis to do SOAP in Java.
    Nobody can just mail you the code. You first have to create java source files from the web service via its WSDL file.

  • Not able to pass cyclic XML schema type to a webservice method

    I have a webservice method called getData(GetDataDocument
    gDoc).
    I constructed a request with object (which exactly satisfy
    the XML schema def) to call up the getData(). [From my java client
    also I did the same; but the java classes have been generated using
    apache's xmlBeans; this works fine with the same kind of request].
    But the soap request constructed from flex does not get
    generated with all the values that I set in the request object.
    On further observation, I found out that if the schema
    involves cyclic elements, the soap request is not getting
    constructed as desired.
    My schema def:
    <complexType name="PredicateBagType">
    <sequence>
    <choice>
    <element maxOccurs="unbounded" minOccurs="0"
    name="PredicateBag" type="tns:PredicateBagType"/>
    <element maxOccurs="unbounded" minOccurs="0"
    name="BinaryPredicate" type="tns:BinaryPredicateType"/>
    <element maxOccurs="unbounded" minOccurs="0"
    name="UnaryPredicate" type="tns:UnaryPredicateType"/>
    </choice>
    </sequence>
    <attribute name="contextNode"
    type="tns:contextNodeIDType"/>
    <attribute default="false" name="negate"
    type="boolean"/>
    <attribute name="type"
    type="tns:PredicateBagTypeType"/>
    </complexType>
    Note that the PredicateBagType may contain another
    PredicateBagType.
    I have constructed my request with objects in my flex
    application . Though I have set the BinaryPredicate object in my
    PredicateBag object, the soap request constructed looks like this
    which is not desired
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="
    http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsd="
    http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="
    http://www.w3.org/2001/XMLSchema-instance">
    <SOAP-ENV:Body>
    <tns:get_Data maxPrograms="0" personalInfoUse="false"
    xmlns:tns="urn:tva:transport:2005">
    <tns:QueryConstraints>
    <tns:PredicateBag contextNode="1" negate="false"
    type="AND"/>
    </tns:QueryConstraints>
    <tns:RequestedTables>
    <tns:Table type="ProgramInformationTable"/>
    </tns:RequestedTables>
    </tns:get_Data>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>.
    If I comment out the PredicateBagType choice in my xsd, the
    flex application constructs the soap request looks like this.
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="
    http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsd="
    http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="
    http://www.w3.org/2001/XMLSchema-instance">
    <SOAP-ENV:Body>
    <tns:get_Data maxPrograms="0" personalInfoUse="false"
    xmlns:tns="urn:tva:transport:2005">
    <tns:QueryConstraints>
    <tns:PredicateBag contextNode="ProgramInformation"
    negate="false" type="AND">
    <tns:BinaryPredicate fieldID="Genre" fieldValue="Fiction"
    test="contains"/>
    </tns:PredicateBag>
    </tns:QueryConstraints>
    <tns:RequestedTables>
    <tns:Table type="ProgramInformationTable"/>
    </tns:RequestedTables>
    </tns:get_Data>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    This request holds good. But I cannot comment out the
    PredicateBagType from my choice. Is this an issue with soap request
    construction issue in Flex..?

    Yes, <choice> is just "partial" supported in Flex 2 .
    read this
    link
    for partial and not supported tags
    Partially supported XML Schema structures
    The following XML Schema structures or structure attributes
    are only partially implemented in this release:
    <choice>
    <all>
    <union>
    regards
    kcell

  • Problem calling WebService from Oracle Forms created by JDeveloper

    Hi All,
    I am trying to call a Webservice from Oracle Form using JAVA Class created by Oracle JDeveloper.
    The Java Function (in JDeveloper) is as follows:
    public Vector GetPIValue(String TagName, String ReadingTime) throws Exception
    URL endpointURL = new URL(endpoint);
    Envelope requestEnv = new Envelope();
    Body requestBody = new Body();
    Vector requestBodyEntries = new Vector();
    requestBodyEntries.addElement(TagName);
    requestBodyEntries.addElement(ReadingTime);
    requestBody.setBodyEntries(requestBodyEntries);
    requestEnv.setBody(requestBody);
    Message msg = new Message();
    msg.send(endpointURL, "http://tempuri.org/GetPIValue", requestEnv);
    Envelope responseEnv = msg.receiveEnvelope();
    Body responseBody = responseEnv.getBody();
    return responseBody.getBodyEntries();
    When this Class is Imported into Oracle Forms the Function is converted into the following PL/SQL code:
    FUNCTION GetPIValue(
    obj ORA_JAVA.JOBJECT,
    a0 VARCHAR2,
    a1 VARCHAR2) RETURN ORA_JAVA.JOBJECT IS
    BEGIN
    Message('param passed: '||a0||' - '||a1);
    cls := JNI.GET_CLASS('oracle/forms/demos/webservice/ConnectToPIStub');
    mid := JNI.GET_METHOD(FALSE, cls, 'GetPIValue', '(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Vector;');
    args := JNI.CREATE_ARG_LIST(2);
    JNI.ADD_STRING_ARG(args, a0);
    JNI.ADD_STRING_ARG(args, a1);
    Message('I am Here');
    RETURN JNI.CALL_OBJECT_METHOD(obj, mid, args);
    END;
    When I am calling this Function from Within Forms and Passing into it the Parameters, I am displaying some Debugging Messages. When the Code reaches "JNI.CALL_OBJECT_METHOD" there is NO RESPONSE from the Webservice and nothing is moving forward after this Point...
    A similar Webservice that can be Tested is:
    http://www.webservicex.com/CurrencyConvertor.asmx
    with WSDL file:
    http://www.webservicex.com/CurrencyConvertor.asmx?wsdl
    Kindly note that this Webservice is running properly from the Web Browser but the call from Oracle Forms is not Succeeding!!!! :-((
    Any help is much appreciated.
    Regards,
    Baz

    Hi,
    Yes, you need to compile your source files with JDK 1.3 (since JInit 1.3.x.x uses JDK 1.3).
    Other solution would be to use JRE 1.5 (instead of JInitiator).
    Check out [this thread|http://forums.oracle.com/forums/thread.jspa?threadID=550563] on how to use JRE1.5
    -Arun

  • BPM process interactive activity(JSP) - external webservice method interac

    I am using Oracle BPM studio 10.3.1.0.
    I have one external web service published on glassfish application server, I have introspected it in my BPM process using its WSDL.
    Now one of my BPM process interactive activity is there, which is represented by one JSP, I am giving some input to my JSP.
    I want this input to be passed to the web service method as a parameter, and it should fetch the output, so basically I want to invoke the web service method, could you please guide me how to do it?
    Thanks & Regards
    Ashish

    Hy Ashih
    I dont know if this is best way to do that, but I have a similar situation here, and I'm using AJAX do call the webservice method by BPM and retrieve data.
    Something like this:
    1 - Create the XMLHttpRequest() object in your jsp (if you need I have the entire code)
    2 - Create the a JavaScript method for to call the OBPM method in your component
    function mymethod(arg1, arg2, arg3)
    xmlhttp.onreadystatechange=function()
                                                      if( xmlhttp.readyState==4 )
                                                           document.getElementById("AnyDIV").innerHTML = xmlhttp.responseText;
         var resp = "<f:invokeUrl var='YourComponenteName' methodName='YourMethodName'/>";
    //Incude how many args your need here
         resp+="&arg1=" + arg1;
         resp+="&arg2=" + arg2;
         resp+="&arg3=" + arg3;
         xmlhttp.open("POST",resp,true);
         xmlhttp.send(null);
    3 - You'll need a div html tag called "AnyDIV" to receive the BPM answer
    4 - On you BPM component, in YourMethodName method (needs to be ServerSide = no), create two args, the first is httpRequest type (name request), and the second is httpResponse type (name response) (fuego lib)
    5 - Type the code below in your BPM method to send info back to the JSP
    //getting the args
    String arg1 = request.getParameter(string : "arg1");
    String arg2 = request.getParameter(string : "arg2");
    String arg3     = request.getParameter(string : "arg3");
    //Do the webservice call here, prepare the html answer and put it into an string variable
    strReturn = "bla bla bla";
    //Send the anwser back to the jsp
    response.bodyTextContent(arg1 : strReturn);
    Or you can do this using xml answer and deal with the tags with javascript
    that's it

Maybe you are looking for