EGL Development User Group

EGL Development User Group

EGL Development User Group

The EGL Development User Group is dedicated to sharing news, knowledge, and insights regarding the EGL language and Business Developer product. Consisting of IBMers, HCL, and users, this community collaborates to advance the EGL ecosystem.

 View Only
  • 1.  [CRRUI3651E] Service binding key : 'i5OSService' does not exist in the deployment descriptor 'EGLRichUI'

    Posted Thu May 27, 2010 03:59 PM

    I am just starting out on EGL and just recently finished the Webinar by Michael. I converted one of the workshops on databases to use the DB2 database on the i/Series instead of the Derby Database. I get this message when I click the button to get the Data on the i/Series. CRRUI3651E Service binding key : 'i5OSService' does not exist in the deployment descriptor 'EGLRichUI'
    I can view the contents of he database using the Database perspective so I do have a connection. There is nothing in my deployment descriptor.
    Here is the code of the Service:

    package servicesi5OS;
    import Datai5OS.CUP0105;
    // service
    *
    service i5OSService
    *
    // Variable Declarations
    CUP0105Array CUP0105];
    // Function Declarations
    function getCUP0105ListAll(CUP0105Array CUP0105[
    )
    get CUP0105Array with
    #*sql*{
    select
    CUUSRID, CUEN, CUFNM, CULNM, CUMNM, CUCNM
    from LOUIELIB.CUP0105 T1
    };
    end
    end

    Here is the code for the Data:

    package Datai5OS;
    // basic library
    *
    library i5OSFile type BasicLibrary {}
    *
    // Constant Declarations
    const constantName string = "literalString";
    // Function Declarations
    *
    end
    *
    Record CUP0105 type SQLRecord
    {tableNames = [}
    cuusrid string {column="CUUSRID", maxLen=6};
    cuen string {column="CUEN", maxLen=9};
    cufnm string {column="CUFNM", maxLen=18};
    culnm string {column="CULNM", maxLen=18};
    cumnm string {column="CUMNM", maxLen=1};
    cucnm string {column="CUCNM", maxLen=39};
    end

    Here is the function that calls the service from the handler:

    function GetCUP0105Btn_onClick(event Event *in*)
    i5OSService i5OSService {};
    call i5OSService.getCUP0105ListAll(CUP0105Array)
    returning to CUP0105listResults onexception CUP0105ListException;
    end

    I would appreciate the group's input on the matter.
    SystemAdmin


  • 2.  Re: [CRRUI3651E] Service binding key : 'i5OSService' does not exist in the deployment descriptor 'EGLRichUI'

    Posted Thu May 27, 2010 04:45 PM

    Hi,
    In your handler, you have the following declaration of the service.
    i5OSService i5OSService {};
    This means it is going to look up a client binding in the .egldd file. I am guessing this is named EGLRichUI.egldd in your RichUI project.
    So try going in and adding a client binding in this file for the new service you created.
    markevans


  • 3.  Re: [CRRUI3651E] Service binding key : 'i5OSService' does not exist in the deployment descriptor 'EGLRichUI'

    Posted Thu May 27, 2010 05:46 PM

    Thanks for your reply Mark. I just need some guidance on creating the Service Client Binding. When adding an entry, I chose JAVA400 (how do I know if this is the right protocol to use? There is also Java400J2C, TCPIP and Local to choose from).
    Also, what do I enter in these attributes: conversion table, library, location, password, userID
    SystemAdmin


  • 4.  Re: [CRRUI3651E] Service binding key : 'i5OSService' does not exist in the deployment descriptor 'EGLRichUI'

    Posted Thu May 27, 2010 05:58 PM

    Hi,
    I assume you are invoking the EGL service that you created and this is being generated as Java. Since it iwould not be running on the AS/400 itself, then you don't specify any of the parms you listed. On the client bindings, you just state whether the service is a SOAP/REST/EGL binding. This is not native as youa re not invoking a non-EGL service. For SOAP/REST it is based on the URI. For EGL binding, using local means it will be a "direct java invocation" of the generated service and is what I would suggest.
    The database connection used by the get statement is separate from the service location. All you appear to be doing is connecting to the database on the AS/400 from within the service. There is setup required to access the database but that depends on what application server you are using.
    If you look in the other parts of the Cafe, there are papers and tutorials for using EGL Rich UI and iSeries.
    markevans


  • 5.  Re: [CRRUI3651E] Service binding key : 'i5OSService' does not exist in the deployment descriptor 'EGLRichUI'

    Posted Thu May 27, 2010 11:29 PM

    I have gone in and created a Service Client Binding and I have the following entry in the deployment descriptor EGLRichUI.egldd:

    <?_xml_ version="1.0" encoding="UTF-8"?>
    <egl:deployment xmlns:egl="http://www.ibm.com/xmlns/egl/deployment/7.0">
    <bindings>
    <eglBinding alias="i5OSService" name="i5OSService" serviceName="servicesi5OS.i5OSService">
    <egl:protocol.java400/>
    </eglBinding>
    </bindings>
    </egl:deployment>

    I also changed the function to specify a binding key when the original coding of i5OSService i5OSService {} yielded the same error message:

    function GetCUP0105Btn_onClick(event Event *in*)
    i5OSService i5OSService {@BindService {bindingKey = "i5OSService"}};
    call i5OSService.getCUP0105ListAll(CUP0105Array)
    returning to CUP0105listResults onexception CUP0105ListException;
    end

    I ran the handler and stil got the same error message:
    CRRUI3651E Service binding key : 'i5OSService' does not exist in the deployment descriptor 'EGLRichUI'
    Are you able to spot what I have done wrong?

    SystemAdmin


  • 6.  Re: [CRRUI3651E] Service binding key : 'i5OSService' does not exist in the deployment descriptor 'EGLRichUI'

    Posted Fri May 28, 2010 03:29 PM

    Hi,
    I did not spot anything wrong, but I found out from talking to a developer that I gave you wrong information.
    If you are invoking this from a RUI (which you are), then the service has to be defined as a Web service or a Rest service. It cannot use EGLBinding.
    If you are using EGL CE instead of RBD, you can also use a dedicated service which is specified by using {} instead of {@BindService}.
    Also, make sure you deploy/regen the .egldd (regen should be automatic) after making changes.

    markevans


  • 7.  Re: [CRRUI3651E] Service binding key : 'i5OSService' does not exist in the deployment descriptor 'EGLRichUI'

    Posted Thu August 10, 2017 09:06 AM

    Hello, everyone.

    In my tests, this problem occurred.

    I applied the "hint" of Make and solved the problem.

    My Tests:
    A) I used an egl-web project, for third-party webservices.
    In this project I imported and kept the wsdl's.
    Customizei the .egldd.

    B) I used an egl-rui project, for front-end
    In this project, I developed a front-end application. On this I instantiated the call to the webservice.
    Customizei the .egldd of this project, pointing to the wsdl of the egl-web project.

    Hugs
    Osvaldo Menezes

    ojomenezes