Manipule a lista in data control

Hi everyone,
I have a data control from a oracle component and I don't have access to this code, so I used it in my page, the data control returns a collection of items, so I can use adf tree and other thinks like that.
The data control is a data control from a UCM component and I'm using getItems method.
So, as I say before I don't have access to the code of data control but I need manipulate the return with java operations, I need sort this list.
I was thinking about call this method in my java method and create my custom data control, but I don't know how "call" the data control method in my custom method.
I would like to know if it's possible cat the result of this oracle data control in a java method and so I can manipulate this.
Thks in advance,

Is it possible to which type of Object, the list returned by the datacontrol contains?
If yes, you could create a custom comparator,
(The below sample NavigationTreeNode is the type of each item in the list)
import java.util.Comparator;
public class NavigationTreeNodeComparator implements Comparator<NavigationTreeNode> {
public NavigationTreeNodeComparator() {
super();
@Override
public int compare(NavigationTreeNode navigationTreeNode1,
NavigationTreeNode navigationTreeNode2) {
int displaySequence1 = navigationTreeNode1.getDisplaySequence();
int displaySequence2 = navigationTreeNode2.getDisplaySequence();
if (displaySequence1 > displaySequence2) {
return +1;
} else if (displaySequence1 < displaySequence2) {
return -1;
} else {
return 0;
After getting the list from method, you can use the custom comparator to sort the list as follows:
Here, the navigationTree contains the list of navigationTreeNodes
NavigationTreeNodeComparator navigationTreeNodeComparator =
new NavigationTreeNodeComparator();
Collections.sort(navigationTree, navigationTreeNodeComparator);
Thanks,
Navaneeth

Similar Messages

  • How read list of Data controls in extension

    Hi
    I want to create an extension in jdev 11g and I want to retrieve the list of data controls. Are you some code samples ?
    Tanks
    jmc

    I'm not sure we are exposing this in the publicly available Extension SDK.
    Can I ask what is your extension aiming to do?
    If you are an Oracle employee we might be able to get you in touch with the dev team and they might be able to give you an internal API.

  • No Master Detail option in Data Control Palette

    No Master Detail option in "Drop as:" dropdown list in data control palette.
    First I create two entity objects with a referential key relation in a business
    components diagram from an existing db schema.
    Than I create two view objects and a view link from the entity objects.
    Following I create an application module with the view objects and the view link.
    The diagram seems correct, it shows the view objects and the view link inside
    of the app module.
    When I create a data page (jsp) in the struts-config.xml I'm not able to
    select the option Master Detail (Many to many) in the dropdown list from
    data control palette due to it isn't there.
    What is my mistake ?
    Many thanks.

    There is no mistake in your side. Thing is actually you cannot use the many to many option for a view object in jsp. This option is available if you are using UIX page. In case of jsp, you could manually create the master table using master view object and create the child table using the detail view object(present as child in view link). In the master table, you can add another column with ADF operation: setCurrentRowWithKey(String). That's it. Now selecting the select link in master table will refresh the child table rowset.

  • Oracle ADF Data Control With Java List

    Hello
    I have a question regarding Data Controls that are based on Application Modules functions. In short I created function:
    public List getListOfTest() {
    List allTests = new ArrayList();
    allTests.add("test1");
    allTests.add("test2");
    allTests.add("test3");
    return allTests;
    inside AppModuleImp.java
    I tested this implementation through AppModule Oracle ADF Model Tester and it returns test1,test2,test3. So this is OK. Now I publisher function through Client Interfaces, and I can see it know in DataControl.
    So I drag and drop function on my jsf page, and render it as a button. Also i drag and droped "return"(hierarchically beeneth/inside function getListOfTest in DataControll) from Data Control and rendered it as ADF table. I was hoping that this will show: test1,test2,test3 in ADF table.
    But now when I run jsf page and it is displayed in browser I get:
    Object java.util of type ApplicationModule is not found
    What I am doing wroong. Please help. Thx
    I use JDeveloper Studio Edition Version 11.1.2.2.0

    The solution is
    public List<String> getListOfTest() {
    List<String> allTests = new ArrayList<String>();
    allTests.add("test1");
    allTests.add("test2");
    allTests.add("test3");
    return allTests;
    Problem was in generic List

  • EJB 3.0 / Data control binding / ADF Faces

    We have a great and very useful tool to generate rich client web application. Generate web component from a data structure is easy but manage the full life cycle is a little bit more complex. This complexity is dramatically increased when tool/platform are offering many models to solve the problem.
    In JDev we have three major choices:
    1) adf business components
    2) top link pojo
    3) ejb3.0
    From the client side and in my point of view (at my current understanding) the first and second choice are the easiest way to manage the persistence because they are what i say "bidirectional", that mean i will use the same data structure to persist and synchronize the database. I may only calll a method from the object to put my changes from the midle-tier into the database.
    EJB 3.0 seem to be more cormplex due essentially to the presence of the session bean that acts like conversational api. I like this architecture because it is the most flexible but from my client i have to manage these api's instead of one data structure. This mean for me to catch/detect every updates, new insert or deletes in my business object and to write the corresponding code to apply to correct entity bean methods from my session bean.
    Why not manage this logic in the data control framework by declaring which methods are to use as finder to get the data and which methods are to used to manage the persistence (persist, merge, remove) at object level.

    Exactly what i mean
    Actually Data Control architecture seem to be business object oriented with native method called from the same object to retrieve (the most part done)/synchronize the data with the database.
    This is fine than your architectue don't provide a service layer like session facade.
    With session facade you will access different business method to retrieve data and synchronize you data with the database not different method from the same object like application module do in adf bc.
    I see two solution, the best is that you extend the data control framework to offer standard crud operation and a tools to map these with one or many methods in the same (has to be the same?this is a question of architecture, i think it has to be the same but the framework may have to permit to use an another one for flexibility) session bean. This may be the same from adf bc or top link but the method may be selected automatically by the tool (wizard).
    The second solution is to build specialized sesssion bean with mandatory standardized methods and map this directly in the framework. The advantage i see is that the updates may be collected only once by the session bean by passing a specialized object manipulated by a specialized method.
    In fact the best solution is something that combines mapping in the data control and a specialized set of methods in the session bean to execute a transaction in a whole at the server level.
    What is to be decided if the framework (data control part) has to maintain a status for attribute (or set of attribute that correspond to a data control node) that are new inserted, updated or deleted and to synchronize only the changes.
    I'm very surprising that something like that it is not already in the framework ?
    How do I have to take care of changes made in a data control node object when i have used it to generate an adf faces by example in master / detail pages with an edit form like in otn examples. I see that the detail list in the detail table is updated so the data control is updated correctly by the edit form when i submit the changes but how to finally get this changes and synchronize with the database ?
    ps i reply previously by mistake by email sorry ... not that the email is not exactly the same as the post here
    Michel

  • I can not find (see) the Data Control Accordion

    Hello all,
    I cannot find (see) the Data Control Accordion, I just installed the Jdeveloper 11g (Oracle JDeveloper 11g (11.1.1.2.0) - November 2009) from this link http://www.oracle.com/technology/software/products/jdev/htdocs/soft11.html
    I started a new ADF BC application, but I cannot find the data control accordion to drag and drop the components I created in the application model. Is there anything I must do after installation (post installation), is there any libraries need to be installed? Please, I need a help to create my application, I’m totally stuck, many thanks for any help.
    Kind regards,
    Nabil

    Shay Shmeltzer wrote:
    Can you post an image of your screen so we can see how it looks like?
    If you delete the JDeveloper\system11.1.1.2.36.55.36 directory - does your IDE get back to the right way of displaying the data control?Hello,
    Many thanks for your reply, kindly find attached screenshots for the two installation of Jdeveloper 11g I have (release 1 & 2), it shows clearly that the “Data Control” is available for release 1, but not available for release 2, even we are talking about the same application!
    Regarding the “JDeveloper\system11.1.1.2.36.55.36”, I’m not sure if I have it (attached a list of directories installed), I was not able to find it under my installation directory, therefore I can’t answer your question, but please advise if it could be the reason, how I may have it, do you think there is something wrong with the installation? I noticed that some persons having the same problem before me, so what was wrong, and how they solve it? I appreciate any help please, many thanks.
    Regards,
    Nabil
    P.S. regarding the attached files, sorry I don't know how to attach files to my reply (you may email me at [email protected] so I can send you the screenshots through email, if you please), any help regarding that too will be appreciated.
    Directory     Location
    o.adf-faces-query-and-lov-dt.11.1.1.2.36.55.36     E:\Oracle11MW\Middleware\jdeveloper\jdev\unit-tests\system11.0.0.0.0
    o.adfdt.swingcore.11.1.1.2.36.55.36     E:\Oracle11MW\Middleware\jdeveloper\jdev\unit-tests\system11.0.0.0.0
    o.adfm.11.1.1.2.36.55.36
    o.adfm.11.1.1.2.36.55.36
    o.BC4J.11.1.1.2.36.55.36
    o.bm.11.1.1.2.36.55.36
    o.css.11.1.1.2.36.55.36
    o.diagram.javadoc.11.1.1.2.36.55.36
    o.dynamic.faces.11.1.1.2.36.55.36
    o.ide.11.1.1.2.36.55.36
    o.j2ee.11.1.1.2.36.55.36
    o.jdeveloper.11.1.1.2.36.55.36
    o.jdeveloper.esdk.11.1.1.2.36.55.36
    o.struts.11.1.1.2.36.55.36
    o.struts.adf.11.1.1.2.36.55.36
    o.xsqldt-ide.11.1.1.2.36.55.36

  • Refresh the object associated with a Row in a Data Control?

    I am using EclipseLink & have an issue with multiple updates of the same Row. During an update, a new instance of the entity is returned by the update method. The instance bound to the Row is not updated with this new version and subsequent updates fail with an optimistic locking exception since the entityVersion hasn't been updated.
    Question: Is it possible to refresh the instance associated with a data control Row? I can remove rows, create rows, but it is not apparent to me how to update a row. I am trying to avoid doing a full retrieve on the bound iterator.

    Hi!
    The issue here is, by my opinion, a gap between ADFm and EJB 3.0 in use-cases with large data sets. If you search this forum, you may find related thread by Pedja about problem of feasible "scrollable" af:table with large number of entities in EJB finder result list. Unfortunately, the ADFm "paged" fetching is in mismatch with EJB support for "paged" (or scrollable) results lists. The all results of EJB finder method are retrieved from data source, stored in memory (thus breaking the heap) and transferred to ADF datacontrol. Then, and only then, ADFm paged fetching and caching mechanisms are employed – but they are just cosmetics as the main data set is permanently stored in memory as List<?>. The workaround is, as Pedja discovered, to write completely proprietary TableCollectionModel which completely evades ADFm and is implemented by set of EJB Session methods for paged acces to datasource through TopLink and native database queries (enabling retrieval of particular range of rows instead a complete result set). Of course, this is very complex coding experience and I find it a not acceptable for efficient development of modern applications on ADF + EJB stack, especially as it brakes a technology independence promoted by EJB and EclipseLink and other standards-based technologies (as you have to use database-specific native query implementation for paged /scrollable access!).
    What I want to say is that I have feeling that ADF support for EJB is not complete in full extend and that ADFm is still much better suited for BCs then for EJBs. I hope that this will be solved in future as this issue may pose a significant issue on application development in enterprise-level area where it is supposed that we are dealing with BROWSING also a large data sets.
    Yes, I emphasize a BROWSING as I strongly oppose a dogmatic approach that SEARCHING is a solution for every use-case. From theory of information, the system SHOULD NOT limit the user in accessing ALL information (based on access rights, of course). So the idea that SEARCH forms should be used to bridge a architectural gap between a ADFm and EJB is not acceptable, as the search MAY limit the user in acquiring the information he (or she) is not able to describe in adequate manner based on search criteria offered by the developer. So, the developer may be responsible for misinformation of user, by limiting his access to information, jus for technology limitations of ADFm which forces a development of purely SEARCH-based functionalities.
    I hope that development team would appreciate and consider this remarks, and invest effort in closing (not bridging!) the gap between ADFm and EJB.
    Regards,
    PaKo

  • Bind an inputFile value to a data control methods parameter

    Hello I am trying to create a InputFile (ADF Faces) which is linked to a data control method. The method reads a specified file and returns the content which is then displayed in table form.
    <br><br>
    I have a filereader Class with the following method:
    <i>public List<FileInQuestion> returnFileContents(String fileName)</i>
    <br><br>
    I have created a data control based on this Class. From the JSF page, under the data control palette I can drag on may parameter 'FileName' (as input text) and my method (as command button) and finally the return type 'FileInQuestion' (as read only table). This all works fine and when I type a filename in and hit the button it displays the contents in a table.
    <br><br>
    Now the problem is that I want to base the input parameter on the value of the InputFile component. But when I drag and drop the 'fileName' parameter onto the canvas, it doesn't give me the option to create as an input file!
    <br><br>
    Please could someone tell me how I manually link (bind) the inputFile component to the 'fileName' parameter?
    <br><br>
    Sorry if a bit long winded!!
    <br><br>
    Thanks Dan
    Message was edited by:
    user593073

    Thanks Frank but I need to get at the text value returned from the inputfile component. I did what you said with the following results:
    <br><br>
    I started with a inputtext field, command button and read only table. When I entered a value (in this case 'C:\data\contacts.txt' ) into the inputtext field and hit the command button the table displayed the expected results (for logic please see my 1st post).
    <br><br>
    I then convert the inputtext component to a inputfile component in the way you suggested. I now rerun the application, browse to the same file and hit the command button, and then nothing!! no results.
    <br><br>
    I'm I missing something here?
    <br><br>
    Thanks
    <br><br>
    Dan

  • Need to Set Current Row when Using Built-in Data Control Delete Operation?

    I have an af:table bound to a ViewObject (VO) collection (no Entity Object) - within each row, I include a column that contains a 'Remove' command button so the user can remove the row. I add the command button by dragging/dropping the built-in delete operation from the VO on the Data Control Palette. When I use this as is (no changes), the Remove button always deletes the first row in the collection, not the selected row. Do I need to add code to set the current row, and if so can someone please provide an example and specify where I need to add? thanks.
    ------ .jspx af:table with command button to remove each row ------
    <af:table value="#{bindings.ListView1.collectionModel}" var="row"
    rows="#{bindings.ListView1.rangeSize}"
    first="#{bindings.ListView1.rangeStart}"
    // note: I don't have any code added for selectedRow or makeCurrent - assuming this is built-in?
    selectionState="#{bindings.ListView1.collectionModel.selectedRow}"
    selectionListener="#{bindings.ListView1.collectionModel.makeCurrent}">
    <af:column>
    <af:commandButton actionListener="#{bindings.Delete.execute}"
    text="Remove"
    disabled="#{!bindings.Delete.enabled}"/>
    </af:column>
    ---------- corresponding pagedef file ------------
    <bindings>.....
    <action id="Delete" IterBinding="ListView1Iterator"
    InstanceName="SrchDataControl.ListView1"
    DataControl="SrchDataControl" RequiresUpdateModel="false"
    Action="30"/>
    </bindings>
    Note: I also tried solution posted on following thread, but again, only first row is deleted, not the selected row?: Delete and Commit
    Message was edited by:
    javaX

    I just want to delete (or remove) it from the VO. Data for this VO is not on the database.
    The function is doing what I want it to do (delete from the VO), its just always deleting the first row, versus the selected row. I select the command button next on a column next to an item further down in the list and it deletes the first row. The problem is setting the selected row to be removed - I thought setting the current row would be taken care of by the SelectListener?
    selectionState="#{bindings.MyIspListView1.collectionModel.selectedRow}"
    selectionListener="#{bindings.MyIspListView1.collectionModel.makeCurrent}"

  • Using WebCenter Spaces Web Service API through JDeveloper's Data Control

    Hi,
    I'm trying to access WebCenter Spaces Web Service API (located at http://host:port/webcenter/SpacesWebService)
    using JDeveloper's Web Center Data Control.
    I created a data control in my portal project using JDeveloper's Web Service Data Control wizard.
    I also created and configured key stores (jps-config.xml) at both sides (spaces server and my portal client).
    How I created a data control:
    * First I entered the name and the URL (http://host:port/webcenter/SpacesWebService?WSDL)
    * Then I entered HTTP basic authentication details (user name and password)
    * After that I drag-and-drop the getGroupSpaces() method from the data control to a .jspx page as a ADF read-only table.
    * Then ran my portal project and navigated to this .jspx page and it worked. List of group spaces appeared well on that page.
    The problem is that I got only public group spaces and group spaces created by the user I entered on HTTP basic authentication details.
    I makes no sense to enter some static user details in a web service client (or a data control).
    So the question is; can I use identity propagation to get only group spaces created by the same user which I logged in my portal?
    Edited by: 832886 on Feb 18, 2011 3:09 AM

    Hi,
    You generally get NameError when you are executing the createCred/updateCred from a incorrect location. Are you using the wlst from oracle_common\common\bin?
    Also, In your steps I don't see what you did to populate the walllet at JDeveloper end after your updateCred failed. This is a required step. Use the wlst from the location emntioned above and you should be able to proceed.
    Thanks,
    Vishal

  • How Can I use a Variable  in Data Controls query. Frank Kindly check...

    Hii,
    I am using JDeveloper 11g ADF BC.
    My Requirement is that I hv a login screen which is taken from [http://blogs.oracle.com/shay/simpleJSFDBlogin.zip].
    I hv attached BC in this application. I want to use the login usercode in the next pages after login screen. Next screen contains 3 list items which will be populating based on the user. So I created &lt;af:selectOneChoice&gt; using the BC( Just drag & dropped the column into the page from the data controls). But in the data control i want to use this usercode for passing the condition. Now Data is coming without any condition.
    So How can I use the usercode in the Data controls query.
    When I tried to display the usercode in the next page it is showing by binding the value. its code is follows
    &lt;af:outputText value="#{backing_getUser.uid}"
    The program for checking the username & Password is follows.
    package login.backing;
    import oracle.adf.view.rich.component.rich.RichDocument;
    import oracle.adf.view.rich.component.rich.RichForm;
    import oracle.adf.view.rich.component.rich.input.RichInputText;
    import oracle.adf.view.rich.component.rich.layout.RichPanelFormLayout;
    import oracle.adf.view.rich.component.rich.nav.RichCommandButton;
    import java.sql.*;
    import java.util.List;
    import java.util.Map;
    import oracle.adf.view.rich.component.rich.output.RichMessage;
    import oracle.jdbc.OracleDriver;
    public class GetUser {
    private RichInputText uid;
    private RichInputText pid;
    private RichCommandButton commandButton1;
    private RichInputText inputText1;
    private RichInputText inputText2;
    public void setUid(RichInputText inputText1) {
    this.uid = inputText1;
    public void setPid(RichInputText inputText2) {
    this.pid = inputText2;
    public RichInputText getUid() {
    return uid;
    public RichInputText getPid() {
    return pid;
    public void setCommandButton1(RichCommandButton commandButton1) {
    this.commandButton1 = commandButton1;
    public RichCommandButton getCommandButton1() {
    return commandButton1;
    public String login_action() {
    // Add event code here...
    String user = this.getUid().getValue().toString();
    // String pass = inputText2.getValue().toString();
    String pid = this.getPid().getValue().toString();
    Connection conn;
    conn = getConnection();
    Statement stmt = conn.createStatement();
    ResultSet rset = stmt.executeQuery ("SELECT usercode FROM guser where usercode = '"+user.toUpperCase()+"' and pwd=F_TEST('"+pid.toUpperCase()+"')");
    if (rset.next()) {
    conn.close();
    return "good";
    conn.close();
    } catch (SQLException e) {
    System.out.println(e);
    return "bad";
    public static Connection getConnection() throws SQLException {
    String username = "ACCTS";
    String password = "ACCTS";
    String thinConn = "jdbc:oracle:thin:@SERVER1:1521:G5PS";
    DriverManager.registerDriver(new OracleDriver());
    Connection conn =
    DriverManager.getConnection(thinConn, username, password);
    conn.setAutoCommit(false);
    return conn;
    public void setInputText1(RichInputText inputText1) {
    this.inputText1 = inputText1;
    public RichInputText getInputText1() {
    return inputText1;
    public void setInputText2(RichInputText inputText2) {
    this.inputText2 = inputText2;
    public RichInputText getInputText2() {
    return inputText2;
    -----

    Hi,
    I didn't look at the example, but if you want to secure your application then you should use container managed security. Read this .
    Anyway, you could add this before return "good"; in your login_action()
    FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("username", user);Then, you can access this from anywhere in the application by using #{sessionScope.username}.
    Pedja

  • Is there any object in labview that contains a list of data for the user to select (selection one at a time) or add a new data?

    Is there any object in labview that contains a list of data for the user to select (selection one at a time) or add a new data?

    List and table controls -> listbox..is that what you are thinking of?
    The listbox presents the user with a list of options, and you can set it to only accept one selection at a time...Adding new data to the list can not be done directly by the user but if you make e.g. a text control and a button you can programatically insert new objects described in the text box when the button is pressed...(see example).
    If you need more than one column you have the multicolumn listbox. If you want the users to write new entries directly yu can use a table and read selected cells using it's selection start property to read what cell has been selected.
    MTO
    Attachments:
    Listbox_example.vi ‏34 KB

  • Named Criteria created, but it does not show up in the Data Controls view

    Hello there,
    I wish to use a data-bound ADF Mobile ListView in one of the pages on the app. However, only entries of the underlying data that fulfill a certain condition shall be displayed in the list. The condition basically is an "Equals" test against a bind variable in the pageFlowScope. Therefore, I have created a corresponding Named Criteria for the data control - proceeded like described here:
    https://blogs.oracle.com/adf/entry/create_named_criteria_in_ejb
    The Named Criteria, in my case, has been created and saved, yet it does not show up in the Data Controls view of JDeveloper. Therefore, I cannot drag it on a UI element to use it.
    I only have the "Operations" folder where the quick guide above also shows a "Named Criteria" folder.
    Refreshing or restarting JDeveloper did not solve this.

    It was all taken care of by Gaurav Aggarwal
    He got me all fixed up, Thank you for your concern.
    Daniel Walters

  • Static lookup lists:read data from a Java *.properties file

    Hi
    i need to make static lookup lists i am using read data from a Java *.properties file
    i am using the Class "PropertyFileBasedLookupViewObjectImpl" that wrote by Steve Muench in ToyStore.
    but i need to use the default language for that i update the loadDataFromPropertiesFile()
    method to find the correct properties file
    String temp=Locale.getDefault().getLanguage();
    String propertyFile =
    getViewDef().getFullName().replace('.', '/')+"_"+temp+ ".properties";
    the problem:
    For English(TEST_en.properties) it is good and working
    For Arabic(TEST_ar.properties) read from correct file _ar.properties
    but the dispaly character is wrong
    When Debug
    In the File 1=&#1583;&#1605;&#1588;&#1602;
    In debug 1=/u32423

    Depending on your use case you can either use a programmatic VO or directly expose the JV class as a data control.
    http://docs.oracle.com/cd/E18941_01/tutorials/jdtut_11r2_36/jdtut_11r2_36.html

  • How to generate web svc data control from WSDL in 10.1.3 to secure web svc

    When I try to connect to web service via https, I get the error:
    WARNING: Unable to connect to URL: https://remove.site.com/service
    java.security.PrivilegedActionException: javax.xml.soap.SOAPException:
    Message send failed: javax.net.ssl.SSLException: SSL handshake failed:
    X509CertChainIncompleteErr Exceptionjava.rmi.RemoteException: ; nested exception is: HTTP transport error: javax.xml.soap.SOAPException:
    java.security.PrivilegedActionException: javax.xml.soap.SOAPException:
    Message send failed: javax.net.ssl.SSLException: SSL handshake failed: X509CertChainIncompleteErr
    Process exited with exit code 0.
    There does appear to be this dependency on Oracle Wallet, which I saw when I set:
    System.setProperty("HTTPClient.log.level","1");
    which showed Using Wallet:
    and nothing after it.
    AFTER I set:
    System.setProperty("javax.net.ssl.Keystore", "f:\ewallet.p12");
    System.setProperty("javax.net.ssl.KeyStorePassword","mywallet12");
    I saw the "wallet" being used, but still ended up with the same error. I'm only trying to use the "test client" that the web service "generate web service proxy" produces.
    The stack trace was:
    java.rmi.RemoteException: ; nested exception is:
         HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: javax.net.ssl.SSLException: SSL handshake failed: X509CertChainIncompleteErr
         at model.runtime.ProcessOrderBinding_Stub.processOrder(ProcessOrderBinding_Stub.java:95)
         at model.ProcessOrderPortClient.processOrder(ProcessOrderPortClient.java:177)
         at model.ProcessOrderPortClient.main(ProcessOrderPortClient.java:143)
    Caused by: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: javax.net.ssl.SSLException: SSL handshake failed: X509CertChainIncompleteErr
         at oracle.j2ee.ws.client.http.HttpClientTransport.invokeImpl(HttpClientTransport.java:144)
         at oracle.j2ee.ws.client.http.HttpClientTransport.invoke(HttpClientTransport.java:120)
         at oracle.j2ee.ws.client.StreamingSender._sendImpl(StreamingSender.java:169)
         at oracle.j2ee.ws.client.StreamingSender._send(StreamingSender.java:110)
         at model.runtime.ProcessOrderBinding_Stub.processOrder(ProcessOrderBinding_Stub.java:78)
         ... 2 moreIronically, the same certificates that I loaded into the java keystore using Keytool and 10.1.2 connect to the same service without an error, using the notes as described here:
    http://andrej.racchvs.com/archives/2004/04/
    and
    http://radio.weblogs.com/0132036/2004/02/13.html
    When I created the data control for the WSDL in 10.1.2 (jdev), I didn't end up with as many files and only needed to set two system properties, and change the following lines to use Apache SOAP and I could invoke the web service as a data control as well:
    1. references to OracleSOAPHTTPConnection changed to:
    SOAPHTTPConnection
    // import oracle.soap.transport.http.OracleSOAPHTTPConnection;
    import org.apache.soap.transport.http.SOAPHTTPConnection;
    2. comment out:
    setTransportProperties
    getTransportProperties
    How can you connect to a remote web service using HTTPS with JDeveloper 10g and use the Oracle wallet?
    Can someone provide specific steps to get it working based on having a WSDL file to start with?
    Thanks!

    Hello,
    I have the same problem. I am trying to consume a CRM On Demand's Web Service from JDeveloper 10 g (version 10.1.3).
    The main method from my Client is:
    System.setProperty("HTTPClient.log.level","1");
    System.setProperty("javax.net.ssl.Keystore", "C:\\jdevstudio1013\\jdk\\jre\\lib\\security");
    System.setProperty("javax.net.ssl.KeyStorePassword",PASSWORD_KEYSTORE);
    crmod.DefaultClient myPort = new crmod.DefaultClient();
    ListOfContact list= new ListOfContact();
    ListOfContact outList= new ListOfContact();
    Contact[] contacts=new Contact[2];
    Contact contact=new Contact();
    // Login WS (HTTPS)
    idSesionFull=conexionWS_CRM.logon(constantes.URL,constantes.USER,constantes.PASSWORD);
    System.setProperty("javax.xml.rpc.service.endpoint.address", URL);
    System.setProperty("javax.xml.rpc.security.auth.username", USER);
    System.setProperty("javax.xml.rpc.security.auth.password", PASSWORD);
    System.setProperty("javax.xml.ws.BindingProvider.ENDPOINT_ADDRESS_PROPERTY", URL);
    // Add contacts
    for (int i = 0; i < contacts.length; i++) {
    contact.setContactId("WSCRM"+i);
    contact.setContactFirstName("JDeveloper"+i);
    contact.setContactLastName("prove"+i);
    contact.setCellularPhone("77777777"+i);
    contact.setExternalSystemId("1234"+i);
    contacts=contact;
    list.setContact(contacts);
    outList=myPort.contactInsert(list,"OFF");
    Contact[] results = new Contact[2];
    Contact result = new Contact();
    for (int i = 0; i < contacts.length; i++) {
    results=outList.getContact();
    System.out.println("Add contact with ID:"+results[i].getContactId()+" nom:"+results[i].getContactFirstName());
    // Logout WS (HTTPS)
    conexionWS_CRM.logoff(constantes.URL, idSesion);
    } catch (Exception ex) {
    System.out.println("error: "+ex);
    ex.printStackTrace();
    conexionWS_CRM.logoff(constantes.URL, idSesion);
    The JDeveloper's log is:
    LOGIN OK!!
    sessionString:JSESSIONID=8d928b0b231c911e83d79ff74b9eaa7795b54d784b1b.e3iRbxmNaNb0ahqLa34LbhiMe0; path=/Services; secure URL:https://secure-ausomxgfa.crmondemand.com/Services
    System.setProperty("HTTPClient.log.level","1"), print the following:
    {Thread-10} [0:50:39.15] Version: Oracle HTTPClient Version 10h
    {Thread-10} [0:50:39.46] Conn: Nagle's Algorithm is disabled
    {Thread-10} [0:50:39.46] Conn: Setting Socket Idle Timeout to 10 seconds
    {Thread-10} [0:50:39.46] Conn: Setting Maximum Authorization retries to 4
    {Thread-10} [0:50:39.62] Conn: added module HTTPClient.RetryModule
    {Thread-10} [0:50:39.93] Conn: added module HTTPClient.CookieModule
    {Thread-10} [0:50:39.93] Conn: added module HTTPClient.RedirectionModule
    {Thread-10} [0:50:39.93] Conn: added module HTTPClient.AuthorizationModule
    {Thread-10} [0:50:39.93] Conn: added module HTTPClient.DefaultModule
    {Thread-10} [0:50:39.109] Conn: added module HTTPClient.TransferEncodingModule
    {Thread-10} [0:50:39.109] Conn: added module HTTPClient.ContentMD5Module
    {Thread-10} [0:50:39.125] Conn: added module HTTPClient.ContentEncodingModule
    {Thread-10} [0:50:39.156] Conn: chunking set to true
    {Thread-10} [0:50:39.156] Conn: chunk size set to 4.096
    {Thread-10} [0:50:39.171] URLC: (https:secure-ausomxgfa.crmondemand.com:443) Setting request method: POST
    {Thread-10} [0:50:39.171] URLC: (https:secure-ausomxgfa.crmondemand.com:443) Setting request property: Content-type : application/x-www-form-urlencoded
    {Thread-10} [0:50:39.171] URLC: (https:secure-ausomxgfa.crmondemand.com:443) creating output stream
    {Thread-10} [0:50:39.171] URLC: (https:secure-ausomxgfa.crmondemand.com:443) Setting request property: SOAPAction : "document/urn:crmondemand/ws/contact/10/2004:ContactInsert"
    {Thread-10} [0:50:39.171] URLC: (https:secure-ausomxgfa.crmondemand.com:443) Setting request property: Content-Type : text/xml; charset=UTF-8
    {Thread-10} [0:50:39.171] URLC: (https:secure-ausomxgfa.crmondemand.com:443) Setting request property: Content-Length : 1173
    {Thread-10} [0:50:39.171] URLC: (https:secure-ausomxgfa.crmondemand.com:443) Connecting ...
    {Thread-10} [0:50:39.218] Conn: Creating Socket: secure-ausomxgfa.crmondemand.com:443
    {Thread-10} [0:50:39.453] Conn: using SSL version Oracle
    {Thread-10} [0:50:39.515] Using wallet:
    {Thread-10} [0:50:39.796] Conn:
    {Thread-10} [0:50:39.796] Conn: Retrying request
    {Thread-10} [0:50:39.796] Conn: Creating Socket: secure-ausomxgfa.crmondemand.com:443
    {Thread-10} [0:50:40.31] Using wallet:
    {Thread-10} [0:50:40.265] Conn:
    {Thread-10} [0:50:40.265] Conn: Retrying request
    {Thread-10} [0:50:40.265] Conn: Creating Socket: secure-ausomxgfa.crmondemand.com:443
    {Thread-10} [0:50:40.500] Using wallet:
    {Thread-10} [0:50:40.734] Conn:
    {Thread-10} [0:50:40.734] URLC: (https:secure-ausomxgfa.crmondemand.com:443) Disconnecting ...
    Unable to connect to URL: https://secure-ausomxgfa.crmondemand.com/Services/Integration due to java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: javax.net.ssl.SSLException: SSL handshake failed: X509CertChainIncompleteErr
    error: java.rmi.RemoteException: ; nested exception is:
         HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: javax.net.ssl.SSLException: SSL handshake failed: X509CertChainIncompleteErr
    java.rmi.RemoteException: ; nested exception is:
         HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: javax.net.ssl.SSLException: SSL handshake failed: X509CertChainIncompleteErr
         at crmod.runtime.Default_Binding_Stub.contactInsert(Default_Binding_Stub.java:506)
         at crmod.DefaultClient.contactInsert(DefaultClient.java:210)
         at crmod.DefaultClient.main(DefaultClient.java:138)
    Caused by: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: javax.net.ssl.SSLException: SSL handshake failed: X509CertChainIncompleteErr
         at oracle.j2ee.ws.common.util.exception.JAXRPCExceptionBase.<init>(JAXRPCExceptionBase.java:93)
         at oracle.j2ee.ws.common.util.exception.JAXRPCExceptionBase.<init>(JAXRPCExceptionBase.java:89)
         at oracle.j2ee.ws.client.ClientTransportException.<init>(ClientTransportException.java:33)
         at oracle.j2ee.ws.client.http.HttpClientTransport.invokeImpl(HttpClientTransport.java:144)
         at oracle.j2ee.ws.client.http.HttpClientTransport.invoke(HttpClientTransport.java:121)
         at oracle.j2ee.ws.client.StreamingSender._sendImpl(StreamingSender.java:169)
         at oracle.j2ee.ws.client.StreamingSender._send(StreamingSender.java:111)
         at crmod.runtime.Default_Binding_Stub.contactInsert(Default_Binding_Stub.java:490)
         ... 2 more
    Process exited with exit code 0.
    And I am working without Proxy Server.
    The steps I have done to obtain the keystore are:
    1) Obtain the certificate from https://secure-ausomxgfa.crmondemand.com/Services/Integration and save as .cer
    2) With this certificate I have generated the keystore:
    C:\jdevstudio1013\jdk\jre\bin keytool -import -v -f DIR_CERTIFICATE_DOWNLOADED -keystore server.keystore -keypass PASS -storepass PASS_FROM_server.keystore
    PASS=I have put an invented password
    Any idea to solve the error? Is necessary a certificate with a keystore to connect HTTPS Web Service from JDeveloper 10g?
    Thank you an regards.
    Edited by: user2349857 on 05-nov-2009 4:18
    Edited by: user2349857 on 05-nov-2009 4:25

Maybe you are looking for