Dynamically Calling a built-in API Class

Ok...
Scenario:
I'd like to pick between an internal pdf viewer and an external using the java.awt.Desktop class.
Unfortunately, for development purposes, I need the code to compile on Java 1.5 (1.5 doesn't have java.awt.Desktop)
Eventually we'll move to 1.6, but until we do, the other contributors don't want to be bothered with commenting out the 1.6 code.
I figured I could dynamically load the class with:
Class.forName("java.awt.Desktop")or perhaps
Class.forName("java.awt.Desktop").newInstance()The Desktop class complains about modifiers "private".
I tried calling the Desktop.open method directly with:
Class.forName("java.awt.Desktop").getDeclaredMethod("open", new Class[]{java.io.File.class};).invoke(null, pdfFile);With no luck either.
I'm compiling on Java 1.6, with the hopes that the 1.5 compilers won't complain. Is this possible, or am I trying to do something outside the scope of Java?
-FBL

Hey guys, this WORKS! Infact, the compiled Java 1.5 version flawlessly opens the application with our 1.6 clients!
I'm pretty impressed that java has this flexibility! Thanks all!
Here's my exact code. I had to remove a few nulls to supress warnings.
try {
        desktopCall("open", new File("C:\samplefile.pdf"));
catch (Exception e) {
        // Open w/ internal viewer
public static void desktopCall(String call, Object o) throws Exception {
     Class[] f = new Class[]{java.io.File.class};
     Object obj = Class.forName("java.awt.Desktop").getDeclaredMethod("getDesktop").invoke(null);
     Class.forName("java.awt.Desktop").getDeclaredMethod(call,f).invoke(obj,o);
}-FBL
Message was edited by:
FBL

Similar Messages

  • Binding parameters to dynamic VO with PL/SQL API call with no where clause

    Hi all,
    I am required to change exisiting queries to queries with "bind" parameters. Some of our VOs are dynamic and with PL/SQL api calls like below:
    String stmtStr = "selectXXX_API_UTILS.chk_urg_since_last_prg("
    + projectId + "," + PPCId + ",'XYZ_TASKS'," + taskId+ ")"
    +" from dual ";
    ViewObject tmpVO = transaction.createViewObjectFromQueryStmt(stmtStr);
    In this regard, I am unsure how to bind the PPCId and taskId parameters to the VO. setWhereClauseParams() would not work here as there is now where clause.
    Thanks in advance,
    Srini

    In case of preparedStatement, we mention bind parameters to be passed using "?". Then we pass paramters sequencially.
    But in the your case following is enough:
    int projectId = 100 ; (hardcoding values for example)
    int taskId = 500 ;
    String stmtStr = "selectXXX_API_UTILS.chk_urg_since_last_prg("
    + projectId + "," + PPCId + ",'XYZ_TASKS'," + taskId+ ")"
    +" from dual ";
    -Anand

  • Calling Portal event from ABAP class

    Hi Experts,
    I need a following clarificatrion, Please help,
    1. Is it possible to call a webdynpro method from a normal ABAP class?
    2. If no, we need a functionality of a class 'CL_WDR_HTTP_EXT_MIME_HANDLER' having method 'DO_DOMAIN_RELAX_HTML'.
    Is there any alternative method which can be used in ABAP having the same functionality.
    3. Is there any ways with which we can call portal event from ABAP class?
    Thanks,
    Shabir

    >1. Is it possible to call a webdynpro method from a normal ABAP class?
    I wouldn't necessarily recommend this approach. You shouldn't try to trigger events or any of the standard WDDO* methods from outside the WD Component itself.  That said, you can pass the object reference (like the WD_COMP_CONTROLLER object reference or the View Object Reference) into methods of normal classes.  Be careful if you are finding yourself calling a lot of your added methods from outside WD.  This is probably a sign that these methods should be in the Assistance Class or some other Class functioning as a Model Object.
    >2. If no, we need a functionality of a class 'CL_WDR_HTTP_EXT_MIME_HANDLER' having method 'DO_DOMAIN_RELAX_HTML'.
    Is there any alternative method which can be used in ABAP having the same functionality.
    What exactly do you want to do here?  Do you just want to get the relaxation script?  For what purpose?  You should never need to inject the relaxation script into WDA. 
    >3. Is there any ways with which we can call portal event from ABAP class?
    To what purpose.  Do you just want to delegate the triggering of the event that is inside WD Component to be called from a class?  If so you can pass the portal API object reference into a class from the WD Component.  However this only works while running within WD.
    How is this class used?  Are you running in WD?  Are you trying to generate some HTML code that runs in the portal independent of WD?

  • Dynamic call of a static method of an static attribute

    Hi all,
    is it possible to call dynamically a static method of a static attribute of a class.
    The statement without dynamic call would look like this:
    cl_test_class=>static_attribute=>static_method( ).
    I would like to do it like this:
    ('CL_TEST_CLASS')=>static_attribute=>static_method( ).
    Netiher the one nor the other way works for me - I'm getting the error "The notation used is reserved for business object classes".
    Regards, Stefan

    I guess, it is not possible to call method using the short form (parameters in brackets) is not possible in Dynamic Access. You may need to get the attribute first and then call the method.
    CLASS lcl_main DEFINITION.
      PUBLIC SECTION.
        CLASS-DATA: o_same TYPE REF TO lcl_main.
        METHODS: run.
    ENDCLASS.                    "lcl_main DEFINITION
    CLASS lcl_main IMPLEMENTATION.
      METHOD run.
        WRITE: 'success'.
      ENDMETHOD.                    "run
    ENDCLASS.                    "lcl_main IMPLEMENTATION
    START-OF-SELECTION.
      DATA: lo_same TYPE REF TO lcl_main.
      CREATE OBJECT lcl_main=>o_same.
    *  lcl_main=>o_same=>run( ).
      TRY.
          FIELD-SYMBOLS: <fs> TYPE REF TO lcl_main.
          ASSIGN ('LCL_MAIN')=>('O_SAME') TO <fs>.
          CALL METHOD <fs>->('RUN').
        CATCH cx_root.
      ENDTRY.
    Regards,
    Naimesh Patel

  • Message zclass not found in Programs  (possibly dynamic calls!)

    Hi Experts,
    When we are running MIRO transaction, Zmessage error is triggering. when i double-click on error message it is showing
    "Message ZFI 002(Class) not found in Programs  (possibly dynamic calls!)"
    Please provide your solutions to resolve the issue.
    Regards,
    Bharat
    Moderator message: please do some research before asking.
    Edited by: Thomas Zloch on Mar 15, 2011 9:21 AM

    Dear Miciuli,
    I found the definition for the circle in the canvas class and used it to creates circles ! Thank you for jaring my brain into thinking !
    Stan
    Ellipse2D.Double circle = new Ellipse2D.Double(xPos, 70, 30 , 30);

  • How to parse a string in CVP 7.0(1). Is there a built-in java class, other?

    Hi,
    I need to parse,in CVP 7.0(1), the BAAccountNumber variable passed by the ICM dialer.  Is there a built-in java class or other function that would help me do this?
    Our BAAccountNumber variable looks something like this: 321|XXX12345678|1901|M. In IP IVR I use the "Get ICM Data" object to read the BAAccountNumber variable from ICM and then I use the "token index" feature to parse the variable (picture below).
    Alternately, IP IVR also has a Java class that allows me to do this; the class is "java.lang.String" and the method is "public int indexOf(String,int)"
    Is there something equivalent in CVP 7.0(1)?
    thanks

    Thanks again for your help.  This is what I ended up doing:
    This configurable action element takes a string seperated by two "|" (123|123456789|12)
    and returns 3 string variables.
    you can add more output variables by adding to the Setting array below.
    // These classes are used by custom configurable elements.
    import com.audium.server.session.ActionElementData;
    import com.audium.server.voiceElement.ActionElementBase;
    import com.audium.server.voiceElement.ElementData;
    import com.audium.server.voiceElement.ElementException;
    import com.audium.server.voiceElement.ElementInterface;
    import com.audium.server.voiceElement.Setting;
    import com.audium.server.xml.ActionElementConfig;
    public class SOMENAMEHERE extends ActionElementBase implements ElementInterface
         * This method is run when the action is visited. From the ActionElementData
         * object, the configuration can be obtained.
        public void doAction(String name, ActionElementData actionData) throws ElementException
            try {
                // Get the configuration
                ActionElementConfig config = actionData.getActionElementConfig();
                //now retrieve each setting value using its 'real' name as defined in the getSettings method above
                //each setting is returned as a String type, but can be converted.
                String input = config.getSettingValue("input",actionData);
                String resultType = config.getSettingValue("resultType",actionData);
                String resultEntityID = config.getSettingValue("resultEntityID",actionData);
                String resultMemberID = config.getSettingValue("resultMemberID",actionData);
                String resultTFNType = config.getSettingValue("resultTFNType",actionData);
                //get the substring
                //String sub = input.substring(startPos,startPos+numChars);
                String[] BAAcctresults = input.split("\\|");
                //Now store the substring into either Element or Session data as requested
                //and store it into the variable name requested by the Studio developer
                if(resultType.equals("Element")){
                    actionData.setElementData(resultEntityID,BAAcctresults[0]);
                    actionData.setElementData(resultMemberID,BAAcctresults[1]);
                    actionData.setElementData(resultTFNType,BAAcctresults[2]);
                } else {
                    actionData.setSessionData(resultEntityID,BAAcctresults[0]);
                    actionData.setSessionData(resultMemberID,BAAcctresults[1]);
                    actionData.setSessionData(resultTFNType,BAAcctresults[2]);
                actionData.setElementData("status","success");
            } catch (Exception e) {
                //If anything goes wrong, create Element data 'status' with the value 'failure'
                //and return an empty string into the variable requested by the caller
                e.printStackTrace();
                actionData.setElementData("status","failure");
        public String getElementName()
            return "MEDDOC PARSER";
        public String getDisplayFolderName()
            return "SSC Custom";
        public String getDescription()
            return "This class breaks down the BAAccountNumber";
        public Setting[] getSettings() throws ElementException
             //You must define the number of settings here
             Setting[] settingArray = new Setting[5];
              //each setting must specify: real name, display name, description,
              //is it required?, can it only appear once?, does it allow substitution?,
              //and the type of entry allowed
            settingArray[0] = new Setting("input", "Original String",
                       "This is the string from which to grab a substring.",
                       true,   // It is required
                       true,   // It appears only once
                       true,   // It allows substitution
                       Setting.STRING);
            settingArray[1] = new Setting("resultType", "Result Type",
                    "Choose where to store result \n" +
                    "into Element or Session data",
                    true,   // It is required
                    true,   // It appears only once
                    false,  // It does NOT allow substitution
                    new String[]{"Element","Session"});//pull-down menu
            settingArray[1].setDefaultValue("Session");
            settingArray[2] = new Setting("resultEntityID", "EntityID",
              "Name of variable to hold the result.",
              true,   // It is required
              true,   // It appears only once
              true,   // It allows substitution
              Setting.STRING);  
            settingArray[2].setDefaultValue("EntityID");
            settingArray[3] = new Setting("resultMemberID", "MemberID",
                    "Name of variable to hold the result.",
                    true,   // It is required
                    true,   // It appears only once
                    true,   // It allows substitution
                    Setting.STRING);  
            settingArray[3].setDefaultValue("MemberID");
            settingArray[4] = new Setting("resultTFNType", "TFNType",
                      "Name of variable to hold the result.",
                      true,   // It is required
                      true,   // It appears only once
                      true,   // It allows substitution
                      Setting.STRING);  
            settingArray[4].setDefaultValue("TFNType");    
    return settingArray;
        public ElementData[] getElementData() throws ElementException
            return null;

  • Runtime error OBJECTS_OBJREF_NOT_ASSIGNED when calling any standard GRC API's

    Hello colleagues,
    I always get the runtime error OBJECTS_OBJREF_NOT_ASSIGNED when calling any standard GRC API's
    For instance, lets take Function Modules:
    I tried almost any of them but in particular:
    GRPC_API_CONTROL_QUERY Load the list of controls
    GRPC_API_ISSUE_QUERY Retrieve issues of the case
    GRPC_API_ORGUNIT_QUERY Load list of Organizations
    GRPC_API_RMPLAN_QUERY Retrieve remediation plans of case
    GRPC_API_RISK_CONTROLS Retrieve the controls of the risk
    and etc.
    All of them return the runtime error OBJECTS_OBJREF_NOT_ASSIGNED, however I've provided Object ID's in the right format,
    The same is for corresponding classes,
    Does anyone have such problem before?
    Appreciate your responses,
    Thank you,
    Best Regards,
    Anton

    Hi Anton,
    We need to pass value for I_SESSION_ID. Because, when i execute FM: GRPC_API_RMPLAN_QUERY by giving correct I_OBJECT_ID as shown below, i'm also getting the same error.
    On executing..
    Getting following dump.
    And attached is the dump analysis .
    Thanks
    KH

  • Calling BO(Business Objects API ) from my J2EE Application

    We have an application which contains a module that handles
    User Creation and Maintenance.
    Right now we have New and Authorize screens.
    Basically these users can access reports in BO.
    But this user creation in BO(Bussiness Objects) is done manually in BO.
    Now I need to automate this user creation in BO from my UserMaintenance Module.
    BO has exposed an API thru which we can call functions to create an User in BO.
    My problem is where to call this API from ?We call a stored procedure for authorizing a new user in UserMaintenace Module.
    We use Struts Framework.
    Action class--->ServiceClass-----> DAOClass
    In this DAO class we call this stored procedure to authorize the user creation.
    My question is where to call this API from .
    That is ,it should be called from DAO or ACtion class or Service class.
    How to call an external API and what are the issues that are generally involved in calling an external API.
    Fortunately both my weblogic and BO servers reside on the same unix server.
    While calling an API should I have to take care about Portnumbers,external machine location i.e host address,
    How to handle database connection.
    Can someone throw an answer to these questions.
    Thanks in advance

    As I understand, your user management is through database, so when a user is created in your application, the parameters pass through the Action Handler -> service class-> DAO. So a better way would be write an additional class with the user management implementation of BO with a constructor or a method which would take the required user creation parameters and call it in the service class just under the user creation method of your DAO.
    As the user in your system passes some information from the front end, the same can be used to create user in BO.

  • Dynamical Call of ALV - No data update

    Hi,
    I tried to use use the ALV dynamically. With dynamically I mean that I that I have diffrent data structures, depending what was selected by the user. The first call of the program is always correct. The data is displayed correctly. But when the data structure is changing, the ALV display is not updated.  For a better understanding I post a extract of my coding:
    <b>1. Creation of Container</b>
    CREATE OBJECT g_custom_container
        EXPORTING              
          container_name              = 'PARENT_CONT'
        EXCEPTIONS
          cntl_error                  = 1
          cntl_system_error           = 2
          create_error                = 3
          lifetime_error              = 4
          lifetime_dynpro_dynpro_link = 5.
      IF sy-subrc <> 0.
        ASSERT 1 = 2.
      ENDIF.
    <b>2.Creation of splitter container</b>
      CREATE OBJECT splitter
         EXPORTING
           parent            = g_custom_container
           rows              = 2
           columns           = 2
        EXCEPTIONS
          cntl_error        = 1
          cntl_system_error = 2
          OTHERS            = 3.
      IF sy-subrc <> 0.
        ASSERT 1 = 2.
      ENDIF.
    container_2 = splitter->get_container(
                                row       = 1
                                column    = 2 ).
    <b>3.Dynamic Creation of alv object</b>
      CREATE OBJECT go_grid
        EXPORTING
          i_parent = container_2.
    <b>4. Get Fieldcatalogue</b>
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
        EXPORTING
          i_structure_name       = lv_structure_name
        CHANGING
          ct_fieldcat            = lt_fieldcat
        EXCEPTIONS
          inconsistent_interface = 1
          program_error          = 2
          OTHERS                 = 3.
      IF sy-subrc <> 0.
        ASSERT 1 = 2.
      ENDIF.
    <b>5. Set table for first display</b>
      CALL METHOD go_grid->set_table_for_first_display
    *    EXPORTING
    *      i_structure_name = lv_structure_name
        CHANGING
          it_fieldcatalog  = lt_fieldcat
          it_outtab        = <lt_out_data>.
      CALL METHOD ls_alv_ref-alv_ref->refresh_table_display.
      CALL METHOD cl_gui_cfw=>flush.
    Perhaps someone could help.....
    Best Regards, Edgar

    Hello Edgar
    The following sample report <b>ZUS_SDN_TWO_ALV_GRIDS_8</b> shows how to solve your problem. Please note that for the sake of simplicity I replaced the tree containing the structure names with an ALV list. However, the switch between the different structures is triggered by the <b>DOUBLE_CLICK</b> event.
    I like to add that the integration of the first displayed ALV list (DD02L) into GT_OUTTAB is not really elegant. In addition, with <b>$TMP</b> I marked a problematic part of the coding with respect to your requirement to have the right layout for each displayed ALV list:
    If you have a <b>fixed </b>assignment of <i>tabname -> 4-digit handle</i> then it is ok. I my sample report the layouts only work if you select the tabnames in the very same order.
    Before showing the entire coding I describe crucial parts of the coding:
    [code]TYPES: BEGIN OF ty_s_outtab.
    TYPES: tabname    TYPE tabname.
    TYPES: layout     TYPE lvc_s_layo.
    TYPES: variant    TYPE disvariant.
    TYPES: fcat       TYPE lvc_t_fcat.
    TYPES: data       TYPE REF TO data.
    TYPES: END OF ty_s_outtab.[/code]
    Every time a new structure is selected the corresponding ALV data are stored as new record in GT_OUTTAB which is of line type TY_S_OUTTAB.
    [code]  READ TABLE gt_outtab INTO gs_outtab INDEX 2.
      ASSIGN gs_outtab-fcat    TO <gt_fcat>.
      ASSIGN gs_outtab-data->* TO <gt_outtab>.[/code]
    Since the ALV list data and the fieldcatalog are fully dynamic I use global field-symbols for these data.
    [code]&----
    *&      Module  STATUS_0100  OUTPUT
          text
    MODULE status_0100 OUTPUT.
      SET PF-STATUS 'STATUS_0100'.  " contains push button "DETAIL"
    SET TITLEBAR 'xxx'.
      CALL METHOD go_grid2->set_table_for_first_display
        EXPORTING
          i_structure_name = gs_outtab-tabname
          is_layout        = gs_outtab-layout
          is_variant       = gs_outtab-variant
          i_save           = 'A'
        CHANGING
          it_outtab        = <gt_outtab>
          it_fieldcatalog  = <gt_fcat>
        EXCEPTIONS
          OTHERS           = 4.
      IF sy-subrc <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDMODULE.                 " STATUS_0100  OUTPUT[/code]
    The second ALV list which displays the table records is always newly displayed in the PBO module.
    In the event handler method <b>HANDLE_DOUBLE_CLICK</b> we need to do two things:
    - store the current fieldcatalog back to GT_OUTTAB
    - store the name of the new selected table/structure -> trigger PAI
    In routine <b>HANDLE_DB_CLICK</b> we create a new entry for GT_OUTTAB if it does not yet exist. Next we select this entry and display it again as second ALV list.
    [code]
    *& Report  ZUS_SDN_TWO_ALV_GRIDS_8
    *& Description: Display two ALV lists in splitter container (left/right)
    *&              Left ALV list contains DB table names,
    *& right ALV list displays entries of selected DB table
    *& SDN thread: Dynamical Call of ALV - No data update
    *&       Link: https:||Dynamical Call of ALV - No data update
    *& Screen '0100' contains no elements.
    *& ok_code -> assigned to GD_OKCODE
    *& Flow logic:
    PROCESS BEFORE OUTPUT.
       MODULE STATUS_0100.
    PROCESS AFTER INPUT.
       MODULE USER_COMMAND_0100.
    REPORT  zus_sdn_two_alv_grids_8.
    TYPE-POOLS: abap.
    DATA:
      gd_repid         TYPE syst-repid,
      gd_okcode        TYPE ui_func,
      go_docking       TYPE REF TO cl_gui_docking_container,
      go_splitter      TYPE REF TO cl_gui_splitter_container,
      go_cell_left     TYPE REF TO cl_gui_container,
      go_cell_right    TYPE REF TO cl_gui_container,
      go_grid1         TYPE REF TO cl_gui_alv_grid,
      go_grid2         TYPE REF TO cl_gui_alv_grid,
      gs_layout        TYPE lvc_s_layo.
    TYPES: BEGIN OF ty_s_outtab.
    TYPES: tabname    TYPE tabname.
    TYPES: layout     TYPE lvc_s_layo.
    TYPES: variant    TYPE disvariant.
    TYPES: fcat       TYPE lvc_t_fcat.
    TYPES: data       TYPE REF TO data.
    TYPES: END OF ty_s_outtab.
    TYPES: ty_t_outtab  TYPE STANDARD TABLE OF ty_s_outtab
                        WITH DEFAULT KEY.
    DATA:
      gt_dd02l         TYPE STANDARD TABLE OF dd02l,
      gs_outtab        TYPE ty_s_outtab,
      gt_outtab        TYPE ty_t_outtab.
    FIELD-SYMBOLS:
      <gt_fcat>        TYPE lvc_t_fcat,
      <gt_outtab>      TYPE table.
          CLASS lcl_eventhandler DEFINITION
    CLASS lcl_eventhandler DEFINITION.
      PUBLIC SECTION.
        CLASS-DATA:
          md_tabname_selected  TYPE tabname  READ-ONLY.
        CLASS-METHODS:
          handle_double_click FOR EVENT double_click OF cl_gui_alv_grid
            IMPORTING
              e_row
              e_column
              es_row_no
              sender.
    ENDCLASS.                    "lcl_eventhandler DEFINITION
          CLASS lcl_eventhandler IMPLEMENTATION
    CLASS lcl_eventhandler IMPLEMENTATION.
      METHOD handle_double_click.
      define local data
        DATA:
          ls_dd02l       TYPE dd02l,
          ls_outtab      TYPE ty_s_outtab.
        CHECK ( sender = go_grid1 ).
        READ TABLE gt_dd02l INTO ls_dd02l INDEX e_row-index.
        "   Store data of currently displayed ALV list (except for DD02L)
        IF ( md_tabname_selected = space ).
        ELSE.
          READ TABLE gt_outtab INTO ls_outtab
               WITH KEY tabname = md_tabname_selected.  " old
          CALL METHOD go_grid2->get_frontend_fieldcatalog
            IMPORTING
              et_fieldcatalog = ls_outtab-fcat.
          MODIFY gt_outtab FROM ls_outtab INDEX syst-tabix.
        ENDIF.
        md_tabname_selected = ls_dd02l-tabname.  " new selected DB table
      Triggers PAI of the dynpro with the specified ok-code
       cl_gui_cfw=>set_new_ok_code( 'HANDLE_DB_CLICK' ).  " not 4.6c
        CALL METHOD cl_gui_cfw=>set_new_ok_code
          EXPORTING
            new_code = 'HANDLE_DB_CLICK'
         IMPORTING
           RC       =
      ENDMETHOD.                    "handle_double_click
    ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION
    START-OF-SELECTION.
      gd_repid = syst-repid.
      SELECT        * FROM  dd02l INTO TABLE gt_dd02l
             WHERE  tabname LIKE 'KN%1'   OR
                    tabname LIKE 'LF%1'   OR
                    tabname LIKE 'VB%'   OR
                    tabname LIKE 'MAR%'   OR
                    tabname LIKE 'E07%'
             AND    tabclass = 'TRANSP'.  " transparent table
      SORT gt_dd02l BY tabname.
      PERFORM init_controls.
      PERFORM add_first_table.
    Set event handler
      SET HANDLER:
        lcl_eventhandler=>handle_double_click FOR go_grid1.
      READ TABLE gt_outtab INTO gs_outtab INDEX 1.
    Display data
      CALL METHOD go_grid1->set_table_for_first_display
        EXPORTING
          i_structure_name = gs_outtab-tabname
          is_layout        = gs_outtab-layout
        CHANGING
          it_outtab        = gt_dd02l
        EXCEPTIONS
          OTHERS           = 4.
      IF sy-subrc <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      READ TABLE gt_outtab INTO gs_outtab INDEX 2.
      ASSIGN gs_outtab-fcat    TO <gt_fcat>.
      ASSIGN gs_outtab-data->* TO <gt_outtab>.
    NOTE: method called in PBO module
    CALL METHOD go_grid2->set_table_for_first_display
       EXPORTING
         i_structure_name = gs_outtab-tabname
         is_layout        = gs_outtab-layout
         is_variant       = gs_outtab-variant
         i_save           = 'A'
       CHANGING
         it_outtab        = <gt_outtab>
         it_fieldcatalog  = <gt_fcat>
       EXCEPTIONS
         OTHERS           = 4.
    IF sy-subrc <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    Link the docking container to the target dynpro
      CALL METHOD go_docking->link
        EXPORTING
          repid                       = gd_repid
          dynnr                       = '0100'
         CONTAINER                   =
        EXCEPTIONS
          OTHERS                      = 4.
      IF sy-subrc <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    NOTE: dynpro does not contain any elements
      CALL SCREEN '0100'.
    Flow logic of dynpro (does not contain any dynpro elements):
    *PROCESS BEFORE OUTPUT.
    MODULE STATUS_0100.
    *PROCESS AFTER INPUT.
    MODULE USER_COMMAND_0100.
    END-OF-SELECTION.
    *&      Module  STATUS_0100  OUTPUT
          text
    MODULE status_0100 OUTPUT.
      SET PF-STATUS 'STATUS_0100'.  " contains push button "DETAIL"
    SET TITLEBAR 'xxx'.
      CALL METHOD go_grid2->set_table_for_first_display
        EXPORTING
          i_structure_name = gs_outtab-tabname
          is_layout        = gs_outtab-layout
          is_variant       = gs_outtab-variant
          i_save           = 'A'
        CHANGING
          it_outtab        = <gt_outtab>
          it_fieldcatalog  = <gt_fcat>
        EXCEPTIONS
          OTHERS           = 4.
      IF sy-subrc <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    *&      Module  USER_COMMAND_0100  INPUT
          text
    MODULE user_command_0100 INPUT.
      CASE gd_okcode.
        WHEN 'BACK' OR
             'END'  OR
             'CANC'.
          SET SCREEN 0. LEAVE SCREEN.
      User has pushed button "Display Details"
        WHEN 'HANDLE_DB_CLICK'.
          PERFORM handle_db_click.
        WHEN OTHERS.
      ENDCASE.
      CLEAR: gd_okcode.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    *&      Form  HANDLE_DB_CLICK
          text
    -->  p1        text
    <--  p2        text
    FORM handle_db_click.
    define local data
      DATA:
        ld_handle(4) TYPE n,
        ls_outtab    TYPE ty_s_outtab.
      READ TABLE gt_outtab INTO ls_outtab
           WITH KEY tabname = lcl_eventhandler=>md_tabname_selected.
      IF ( syst-subrc NE 0 ).
        CLEAR: ls_outtab.
        ls_outtab-tabname = lcl_eventhandler=>md_tabname_selected.
        CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
        EXPORTING
        I_BUFFER_ACTIVE              =
          i_structure_name             = ls_outtab-tabname
        I_CLIENT_NEVER_DISPLAY       = 'X'
        I_BYPASSING_BUFFER           =
        I_INTERNAL_TABNAME           =
        CHANGING
          ct_fieldcat                  = ls_outtab-fcat
        EXCEPTIONS
          inconsistent_interface       = 1
          program_error                = 2
          OTHERS                       = 3.
        IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
        CREATE DATA ls_outtab-data TYPE TABLE OF (ls_outtab-tabname).
        ASSIGN ls_outtab-data->* TO <gt_outtab>.
        SELECT * FROM (ls_outtab-tabname) UP TO 50 ROWS
          INTO TABLE <gt_outtab>.
        ls_outtab-layout-no_toolbar = abap_false.
        ls_outtab-layout-zebra      = abap_true.
        ls_outtab-layout-smalltitle = abap_true.
        CONCATENATE ls_outtab-tabname ':'
          INTO ls_outtab-layout-grid_title.
        CONCATENATE ls_outtab-layout-grid_title 'Table Records'
          INTO ls_outtab-layout-grid_title
          SEPARATED BY space.
        ls_outtab-variant-report    = gd_repid.
        DESCRIBE TABLE gt_outtab.
        ld_handle = syst-tfill + 1.
        WRITE ld_handle TO ls_outtab-variant-handle.  " $TMP: Problem!!!
        APPEND ls_outtab TO gt_outtab.
      ENDIF.
      " NOTE: read into GLOBAL variable gs_outtab !!!!
      READ TABLE gt_outtab INTO gs_outtab
            WITH KEY tabname = lcl_eventhandler=>md_tabname_selected.
      ASSIGN gs_outtab-fcat    TO <gt_fcat>.
      ASSIGN gs_outtab-data->* TO <gt_outtab>.
    ENDFORM.                    " HANDLE_DB_CLICK
    *&      Form  INIT_CONTROLS
          text
    -->  p1        text
    <--  p2        text
    FORM init_controls .
    Create docking container
      CREATE OBJECT go_docking
        EXPORTING
          parent                      = cl_gui_container=>screen0
          ratio                       = 90
        EXCEPTIONS
          OTHERS                      = 6.
      IF sy-subrc <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CALL METHOD go_docking->set_extension
        EXPORTING
          extension  = 99999 " full-size screen
        EXCEPTIONS
          cntl_error = 1
          OTHERS     = 2.
      IF sy-subrc <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    Create splitter container
      CREATE OBJECT go_splitter
        EXPORTING
          parent            = go_docking
          rows              = 1
          columns           = 2
         NO_AUTODEF_PROGID_DYNNR =
         NAME              =
        EXCEPTIONS
          cntl_error        = 1
          cntl_system_error = 2
          OTHERS            = 3.
      IF sy-subrc <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    Get cell container
      CALL METHOD go_splitter->get_container
        EXPORTING
          row       = 1
          column    = 1
        RECEIVING
          container = go_cell_left.
      CALL METHOD go_splitter->get_container
        EXPORTING
          row       = 1
          column    = 2
        RECEIVING
          container = go_cell_right.
      CALL METHOD go_splitter->set_column_mode
        EXPORTING
          mode              = cl_gui_splitter_container=>mode_relative
       IMPORTING
         RESULT            =
        EXCEPTIONS
          cntl_error        = 1
          cntl_system_error = 2
          OTHERS            = 3.
      IF sy-subrc <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CALL METHOD go_splitter->set_column_width
        EXPORTING
          id                = 1
          width             = 25
       IMPORTING
         RESULT            =
        EXCEPTIONS
          cntl_error        = 1
          cntl_system_error = 2
          OTHERS            = 3.
      IF sy-subrc <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CALL METHOD go_splitter->set_column_sash
        EXPORTING
          id                = 1
          type              = cl_gui_splitter_container=>type_movable
          value             = cl_gui_splitter_container=>false
       IMPORTING
         RESULT            =
        EXCEPTIONS
          cntl_error        = 1
          cntl_system_error = 2
          OTHERS            = 3.
      IF sy-subrc <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    Create ALV grids
      CREATE OBJECT go_grid1
        EXPORTING
          i_parent          = go_cell_left
        EXCEPTIONS
          OTHERS            = 5.
      IF sy-subrc <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CREATE OBJECT go_grid2
        EXPORTING
          i_parent          = go_cell_right
        EXCEPTIONS
          OTHERS            = 5.
      IF sy-subrc <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " INIT_CONTROLS
    *&      Form  ADD_FIRST_TABLE
          text
    -->  p1        text
    <--  p2        text
    FORM add_first_table .
    define local data
      DATA:
        ls_outtab    TYPE ty_s_outtab.
      ls_outtab-tabname = 'DD02L'.
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
      EXPORTING
      I_BUFFER_ACTIVE              =
        i_structure_name             = ls_outtab-tabname
      I_CLIENT_NEVER_DISPLAY       = 'X'
      I_BYPASSING_BUFFER           =
      I_INTERNAL_TABNAME           =
      CHANGING
        ct_fieldcat                  = ls_outtab-fcat
      EXCEPTIONS
        inconsistent_interface       = 1
        program_error                = 2
        OTHERS                       = 3.
      IF sy-subrc <> 0.
    *MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      GET REFERENCE OF gt_dd02l INTO ls_outtab-data.
      ls_outtab-layout-no_toolbar = abap_false.
      ls_outtab-layout-zebra      = abap_true.
      ls_outtab-layout-smalltitle = abap_true.
      CONCATENATE ls_outtab-tabname ':'
        INTO ls_outtab-layout-grid_title.
      CONCATENATE ls_outtab-layout-grid_title 'Table Records'
        INTO ls_outtab-layout-grid_title
        SEPARATED BY space.
      ls_outtab-variant-report    = gd_repid.
      ls_outtab-variant-handle    = '0002'.
      INSERT ls_outtab INTO gt_outtab INDEX 1.
      ls_outtab-layout-no_toolbar = abap_true.
    ls_outtab-layout-zebra      = abap_true.
    ls_outtab-layout-smalltitle = abap_true.
      ls_outtab-layout-grid_title = 'DB Tables'.
    ls_outtab-variant-report    = gd_repid.
      ls_outtab-variant-handle    = '0001'.
      DELETE ls_outtab-fcat WHERE ( fieldname NE 'TABNAME' ).
      INSERT ls_outtab INTO gt_outtab INDEX 1.
    ENDFORM.                    " ADD_FIRST_TABLE[/code]
    Regards,
      Uwe

  • Dynamically calling EJBs

    Hello,
    I'm reasonably new to working with EJBs so perhaps this isnt possible... Can you dynamically call an EJB at runtime ie like reflection.
    I know once the bean has been created I can use reflection to call the method but how can I create the bean from the beans remote home interface?
    Many thanks
    Michael

    Got it
    EJBMetaData md = theHome.getEJBMetaData();
    Class homeClass = md.getHomeInterfaceClass();
    EJBObject theRemote = (EJBObject)invoke(homeClass,theHome,"create");
    static Object invoke(Class c,Object obj,String mname){
          Method[] methods = c.getMethods();
          String name=null;
          Object r= null;
          try {
              for(int i = 0; i<methods.length ;i++) {
                 name = methods.getName();
    if(name.startsWith(mname)) {
    r = methods[i].invoke(obj,null);
    } catch(Exception e){
    e.printStackTrace();
    return r;

  • Unable to find OSB API classes while submitting the resources to OER

    Hi,
    i had installed weblogic 11gR1 and installed OSB and OER on top of it.
    when i try to submit any xsd or WSDL file from eclipse to Oracle Enterprise Repository it will work fine.
    But when i try to submit any .biz or .proxy file (from osb project) i am getting the following error.
    can anybody please help
    0 [main] WARN com.oracle.oer.sync.framework.impl.DefaultPluginManager - Unable to initialize harvester plugin: D:\OSBOracleMiddleware\repository111\core\tools\solutions\11.1.1.5.0-OER-Harvester\harvester\.\plugins\osb10.productReader
    218 [main] INFO com.oracle.oer.sync.framework.MetadataManager - Oracle Enterprise_Repository_Harvester version: v11.1.1.5.0-110414_0001-1399976
    562 [main] WARN com.oracle.oer.sync.framework.impl.DefaultPluginManager - Unable to initialize harvester plugin: D:\OSBOracleMiddleware\repository111\core\tools\solutions\11.1.1.5.0-OER-Harvester\harvester\.\plugins\osb10.productReader
    968 [main] ERROR com.oracle.oer.sync.plugin.artifact.osb10.OSBServiceIntrospectorBase - Unable to find OSB API classes. Make sure that the BEA_HOME environment variable points to an installation of OSB Server version 10.3.1
    com.oracle.oer.sync.framework.MetadataIntrospectionException: Unable to find OSB API classes. Make sure that the BEA_HOME environment variable points to an installation of OSB Server version 10.3.1
         at com.oracle.oer.sync.plugin.artifact.osb10.OSBServiceIntrospectorBase.introspect(OSBServiceIntrospectorBase.java:96)
         at com.oracle.oer.sync.plugin.reader.file.FileReader.introspectFile(FileReader.java:414)
         at com.oracle.oer.sync.plugin.reader.file.FileReader.readFromFileArray(FileReader.java:286)
         at com.oracle.oer.sync.plugin.reader.file.FileReader.read(FileReader.java:132)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
         at java.lang.reflect.Method.invoke(Method.java:601)
         at com.flashline.util.classloader.ContextClassLoaderHandler.invoke(ContextClassLoaderHandler.java:39)
         at $Proxy24.read(Unknown Source)
         at com.oracle.oer.sync.framework.MetadataManager.start(MetadataManager.java:630)
         at com.oracle.oer.sync.framework.Introspector.<init>(Introspector.java:204)
         at com.oracle.oer.sync.framework.Introspector.main(Introspector.java:428)
    Caused by: java.lang.NoClassDefFoundError: com/bea/wli/sb/services/bindings/config/ServiceTypeChoice
         at com.oracle.oer.sync.plugin.artifact.osb10.OSBServiceIntrospectorBase.processInterface(OSBServiceIntrospectorBase.java:429)
         at com.oracle.oer.sync.plugin.artifact.osb10.BusinessServiceIntrospector.processServiceAsset(BusinessServiceIntrospector.java:70)
         at com.oracle.oer.sync.plugin.artifact.osb10.OSBServiceIntrospectorBase.processService(OSBServiceIntrospectorBase.java:154)
         at com.oracle.oer.sync.plugin.artifact.osb10.OSBServiceIntrospectorBase.introspect(OSBServiceIntrospectorBase.java:90)
         ... 12 more
    Caused by: java.lang.ClassNotFoundException: com.bea.wli.sb.services.bindings.config.ServiceTypeChoice
         at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
         at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
         ... 16 more
    968 [main] ERROR com.oracle.oer.sync.plugin.reader.file.FileReader - Introspection failed due to: Unable to find OSB API classes. Make sure that the BEA_HOME environment variable points to an installation of OSB Server version 10.3.1
    968 [main] ERROR com.oracle.oer.sync.framework.MetadataManager - Artifact harvest failed due to: Unable to find OSB API classes. Make sure that the BEA_HOME environment variable points to an installation of OSB Server version 10.3.1
    com.oracle.oer.sync.framework.MetadataIntrospectionException: Unable to find OSB API classes. Make sure that the BEA_HOME environment variable points to an installation of OSB Server version 10.3.1
         at com.oracle.oer.sync.plugin.artifact.osb10.OSBServiceIntrospectorBase.introspect(OSBServiceIntrospectorBase.java:96)
         at com.oracle.oer.sync.plugin.reader.file.FileReader.introspectFile(FileReader.java:414)
         at com.oracle.oer.sync.plugin.reader.file.FileReader.readFromFileArray(FileReader.java:286)
         at com.oracle.oer.sync.plugin.reader.file.FileReader.read(FileReader.java:132)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
         at java.lang.reflect.Method.invoke(Method.java:601)
         at com.flashline.util.classloader.ContextClassLoaderHandler.invoke(ContextClassLoaderHandler.java:39)
         at $Proxy24.read(Unknown Source)
         at com.oracle.oer.sync.framework.MetadataManager.start(MetadataManager.java:630)
         at com.oracle.oer.sync.framework.Introspector.<init>(Introspector.java:204)
         at com.oracle.oer.sync.framework.Introspector.main(Introspector.java:428)
    Caused by: java.lang.NoClassDefFoundError: com/bea/wli/sb/services/bindings/config/ServiceTypeChoice
         at com.oracle.oer.sync.plugin.artifact.osb10.OSBServiceIntrospectorBase.processInterface(OSBServiceIntrospectorBase.java:429)
         at com.oracle.oer.sync.plugin.artifact.osb10.BusinessServiceIntrospector.processServiceAsset(BusinessServiceIntrospector.java:70)
         at com.oracle.oer.sync.plugin.artifact.osb10.OSBServiceIntrospectorBase.processService(OSBServiceIntrospectorBase.java:154)
         at com.oracle.oer.sync.plugin.artifact.osb10.OSBServiceIntrospectorBase.introspect(OSBServiceIntrospectorBase.java:90)
         ... 12 more
    Caused by: java.lang.ClassNotFoundException: com.bea.wli.sb.services.bindings.config.ServiceTypeChoice
         at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
         at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
         ... 16 more
    com.oracle.oer.sync.framework.MetadataIntrospectionException: Artifact harvest failed due to: Unable to find OSB API classes. Make sure that the BEA_HOME environment variable points to an installation of OSB Server version 10.3.1
         at com.oracle.oer.sync.framework.MetadataManager.start(MetadataManager.java:655)
         at com.oracle.oer.sync.framework.Introspector.<init>(Introspector.java:204)
         at com.oracle.oer.sync.framework.Introspector.main(Introspector.java:428)
    Caused by: com.oracle.oer.sync.framework.MetadataIntrospectionException: Unable to find OSB API classes. Make sure that the BEA_HOME environment variable points to an installation of OSB Server version 10.3.1
         at com.oracle.oer.sync.plugin.artifact.osb10.OSBServiceIntrospectorBase.introspect(OSBServiceIntrospectorBase.java:96)
         at com.oracle.oer.sync.plugin.reader.file.FileReader.introspectFile(FileReader.java:414)
         at com.oracle.oer.sync.plugin.reader.file.FileReader.readFromFileArray(FileReader.java:286)
         at com.oracle.oer.sync.plugin.reader.file.FileReader.read(FileReader.java:132)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
         at java.lang.reflect.Method.invoke(Method.java:601)
         at com.flashline.util.classloader.ContextClassLoaderHandler.invoke(ContextClassLoaderHandler.java:39)
         at $Proxy24.read(Unknown Source)
         at com.oracle.oer.sync.framework.MetadataManager.start(MetadataManager.java:630)
         ... 2 more
    Caused by: java.lang.NoClassDefFoundError: com/bea/wli/sb/services/bindings/config/ServiceTypeChoice
         at com.oracle.oer.sync.plugin.artifact.osb10.OSBServiceIntrospectorBase.processInterface(OSBServiceIntrospectorBase.java:429)
         at com.oracle.oer.sync.plugin.artifact.osb10.BusinessServiceIntrospector.processServiceAsset(BusinessServiceIntrospector.java:70)
         at com.oracle.oer.sync.plugin.artifact.osb10.OSBServiceIntrospectorBase.processService(OSBServiceIntrospectorBase.java:154)
         at com.oracle.oer.sync.plugin.artifact.osb10.OSBServiceIntrospectorBase.introspect(OSBServiceIntrospectorBase.java:90)
         ... 12 more
    Caused by: java.lang.ClassNotFoundException: com.bea.wli.sb.services.bindings.config.ServiceTypeChoice
         at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
         at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
         ... 16 more

    hi,
    hey i overcome the yesterday's error,
    in my osb11g-harvest.bat file 'call setenv.bat' this line was missing.
    when i added this line it works fine.
    but still i am facing another issue
    8332 [Main Thread] INFO com.bea.alsb.harvester.plugin.reader.OSBReader - OSB Config Jar Import / Validation starting.
    <Mar 13, 2012 10:28:16 AM IST> <Warning> <ConfigFwk> <BEA-000000> <Setting transaction '6' as rollback only. Rollback reason:
    java.io.IOException: Invalid jar file
         at com.bea.wli.config.importexport.ConfigJar$LogicalJarForm.<init>(ConfigJar.java:1341)
         at com.bea.wli.config.task.impl.UploadJarTask._execute(UploadJarTask.java:46)
         at com.bea.wli.config.task.impl.SessionedTask$1.execute(SessionedTask.java:233)
         at com.bea.wli.config.transaction.TransactionalTask._doExecute(TransactionalTask.java:217)
         at com.bea.wli.config.transaction.TransactionalTask._doExecuteWithRetry(TransactionalTask.java:162)
         at com.bea.wli.config.transaction.TransactionalTask.doExecute(TransactionalTask.java:142)
         at com.bea.wli.config.task.impl.SessionedTask.doExecute(SessionedTask.java:236)
         at com.bea.wli.config.task.impl.SessionedTask.doExecute(SessionedTask.java:191)
         at com.bea.wli.config.task.impl.UploadJarTask.uploadJar(UploadJarTask.java:36)
         at com.bea.wli.config.mbeans.Config.uploadJarFile(Config.java:442)
         at com.bea.alsb.harvester.utils.ConfigJarUtils.importConfigJar(ConfigJarUtils.java:79)
         at com.bea.alsb.harvester.plugin.reader.OSBReader.readQuery(OSBReader.java:196)
         at com.bea.alsb.harvester.plugin.reader.OSBReader.readQueries(OSBReader.java:112)
         at com.bea.alsb.harvester.plugin.reader.OSBReader.read(OSBReader.java:87)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.flashline.util.classloader.ContextClassLoaderHandler.invoke(ContextClassLoaderHandler.java:39)
         at $Proxy0.read(Unknown Source)
         at com.oracle.oer.sync.framework.MetadataManager.start(MetadataManager.java:630)
         at com.oracle.oer.sync.framework.Introspector.<init>(Introspector.java:204)
         at com.oracle.oer.sync.framework.Introspector.main(Introspector.java:430)
    >
    8426 [Main Thread] ERROR com.oracle.oer.sync.framework.MetadataManager - Artifact harvest failed due to: Unexpected error import: Invalid jar file
    com.oracle.oer.sync.framework.MetadataIntrospectionException: Unexpected error import: Invalid jar file
         at com.bea.alsb.harvester.utils.ConfigJarUtils.importConfigJar(ConfigJarUtils.java:97)
         at com.bea.alsb.harvester.plugin.reader.OSBReader.readQuery(OSBReader.java:194)
         at com.bea.alsb.harvester.plugin.reader.OSBReader.readQueries(OSBReader.java:112)
         at com.bea.alsb.harvester.plugin.reader.OSBReader.read(OSBReader.java:87)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.flashline.util.classloader.ContextClassLoaderHandler.invoke(ContextClassLoaderHandler.java:39)
         at $Proxy0.read(Unknown Source)
         at com.oracle.oer.sync.framework.MetadataManager.start(MetadataManager.java:630)
         at com.oracle.oer.sync.framework.Introspector.<init>(Introspector.java:204)
         at com.oracle.oer.sync.framework.Introspector.main(Introspector.java:430)
    Caused by: java.io.IOException: Invalid jar file
         at com.bea.wli.config.importexport.ConfigJar$LogicalJarForm.<init>(ConfigJar.java:1341)
         at com.bea.wli.config.task.impl.UploadJarTask._execute(UploadJarTask.java:46)
         at com.bea.wli.config.task.impl.SessionedTask$1.execute(SessionedTask.java:233)
         at com.bea.wli.config.transaction.TransactionalTask._doExecute(TransactionalTask.java:217)
         at com.bea.wli.config.transaction.TransactionalTask._doExecuteWithRetry(TransactionalTask.java:162)
         at com.bea.wli.config.transaction.TransactionalTask.doExecute(TransactionalTask.java:142)
         at com.bea.wli.config.task.impl.SessionedTask.doExecute(SessionedTask.java:236)
         at com.bea.wli.config.task.impl.SessionedTask.doExecute(SessionedTask.java:191)
         at com.bea.wli.config.task.impl.UploadJarTask.uploadJar(UploadJarTask.java:36)
         at com.bea.wli.config.mbeans.Config.uploadJarFile(Config.java:442)
         at com.bea.alsb.harvester.utils.ConfigJarUtils.importConfigJar(ConfigJarUtils.java:79)
         at com.bea.alsb.harvester.plugin.reader.OSBReader.readQuery(OSBReader.java:196)
         ... 11 more
    seems that some invalid jar file is there.
    can please take a look in to it,
    Sorry for inconvinience
    anyways thanks a lot for your kind help
    Regards,
    Yogesh

  • Dynamic calls from executable

    Hi all,
    I used to have LabVIEW application, as executable, which does dynamic calls to any VI. Until now it was done and built with LV2009 and worked fine as long as the vi.lib folder was copied to same of folder than the executable (this was needed for dependencies).
    I've now moved to LV2012 and my application does not work anymore. It seems that dynamically loading any VI in vi.lib which calls an LLB is not possible and leads to an error. Is this known ? Is it a bug or a new limitation in LV2012 ?
    Thanks,
    Alex

    Here is how to reproduce this issue :
    First, open the attached GetVIDependencies.vi in the LV2012 development environment. In the "VI Patch" field, enter the path of the attached "Test.vi" and then execute the VI.
    You should get 38 found dependencies and 0 missing. Then do the same with the exe version of GetVIDependencies. You should get 1 dependency which is missing. This is normal because the runtime does not know where <vilib> is placed. If you place the exe in the LabVIEW.exe directory (where vilib stands), you will get the same result.
    Then, if you have LV2009, try the same with the 2009 executable version and "Test_LV2009.vi". It will work as soon as you place the executable in the LabVIEW.exe (2009) folder, no matter where "Test_LV2009.vi" is placed.
    Attachments:
    GetVIDependencies.vi ‏24 KB
    Test.vi ‏7 KB
    GetVIDependencies_LV2009.vi ‏23 KB

  • How to debug dynamic calls

    Hi Gurus,
    Can any one tell me how to debug dynamic calls?
    The scenario is:
    I know the message that is getting fired from a message class.
    I didnot find its usage from the where-used list, as it says - possible dynamic calls.
    How do i know, from where this message is getting fired?
    Pls suggest.
    Thanks, Rashmi

    Hi,
    Just try this
    In the new debugger Breakpoints --> Breakpoint at  --> Breakpoint at Statement
    give MESSAGE
    This will set break point at all message statement. Execute till you get the message
    Regards

  • Return data is null while calling Exchange Online rest api using jquery on Chrome and Mozilla

    Hi,
         I am developing a SharePoint hosted app in which I am calling Exchange online rest api using basic authentication to get mail for the user. This works fine in IE but returns null data when opening in Chrome or Mozilla.
    Is there something I am missing while making rest call to api?
    Please remember to mark your question as answered &Vote helpful,if this solves/helps your problem. Thanks, Ajeet

    Hi,
    This forum is to discuss problems of Office development such as VBA, VSTO, Apps for Office .etc. But I think your question is related to app for SharePoint. I suggest you posting it in
    App for SharePoint forum for more efficient responses.
    Thanks.
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Two remote objects calls on the same php class

    Hi to all,
           I've encountered a strange issue while developing with remote objects.
    I've a mxml component with an init() method inside which is called by a menu.
    When the init() method is called it makes 7 remote object calls which are bound to some components' dataprovider.
    Among this calls I've got 2 remote object which refer to the same remote class. This because I have to call the class twice and the bind the result to two different combobox. Below you find the code:
    <mx:RemoteObject id="myFile" source="myRemoteClass" destination="amfphp"  showBusyCursor="true" makeObjectsBindable="true" fault="traceFault(event)"/>
    <mx:RemoteObject id="myXls"  source="myRemoteClass" destination="amfphp"  showBusyCursor="true" makeObjectsBindable="true" fault="traceFault(event)"/>
    in the init function I make this calls:
    myFile.listDir("dir_1")
    myXls.listDir("dir_2")
    then in the mxml code I bound the result of myFile to combobox1 and the result of myXls on combobox2.
    The problem arise when I call the myXls' listDir method. When I call it I receive the following error:
    code:
    Client.Error.DeliveryInDoubt
    Message:
    Channel disconnected
    Detail:
    Channel disconnected before an acknowledgement was received
    The strange thing is that not only the myXls object returns this error, but also all the other 6 remote object return the same error above.
    I'm not sure, but I guess that the error could be caused by the two remote object which call the same php remote class. If I comment one of the two calls everything works fine.
    Do you have any suggestion about?
    Thanks!!
    Bye
    Luke

    Hi Jan.
    1) We have the 2 VO, each with 3 rows to fill in data. What I mean is that when i just fill in all the fields for the first row of the first VO, and the value of one of these fields is bigger than 50, then after the exception is thrown and the message is displayed, the fields for the first VO are duplicated and shown in the second VO as if the user had inserted them.
    2) We tried yesterday the validateEntity and a Method and Atributte Validator approaches after reading that white paper with the same results.
    The validation is correctly done using any of the those methods.
    I will try to reproduce this issue with the HR schema.
    Thanks in advance once again.

Maybe you are looking for

  • Where to type the activation code for Viber?

    I just downloaded Viber on my iPhone 4.  I typed in my phone number and received the SMS with the activation code.  Now I'm stuck.  Where do I put the code?  I clicked "OK" after receiving the SMS, and I was directed to he page where I had to put my

  • 'PICK' and User commands in reports

    I'm a bit confused about 'PICK' in PF_STATUS. I fI define it, does that mean It can only be recognised in LINE-SELECTION , and not in AT USER-COMMAND. I've defined a small program and thats what seems to be happening?

  • Bengali language support for pearl 9105

    Hi, I am using a factory unlocked blackberry pearl 9105 in Bangladesh. Regardless of my satisfaction with the device, it has become necessary for me to have my native language (Bengali) font for the device.  How can I have my device display Bengali f

  • Can't auto-retrieve MMS with iOS 4.0.1

    My phone-number are provisioned for MMS and i can send without problems. But it refuses to auto-retrieve MMS. In stead i now get an SMS with info on how i can view the MMS "via web". Prior to my upgrade to 4.0.1 (directly from 3.(something)) it worke

  • Error in extracting ExpressNitroXTrialInstall-405.zip

    I have tried 3 times to download the tiral product ExpressNitroXTrialInstall-405.zip. Everything i've got is message from winzip : bad CRC e5d34d11 (should be 3b3b6ac6). Please take a look to fix it. Thanks