Connect to JD Edwards Data from a Connection Pool in Jetty

Jerod Johnson
Jerod Johnson
Director, Technology Evangelism
The JD Edwards JDBC Driver supports connection pooling: This article shows how to connect faster to JD Edwards data from Web apps in Jetty.

The CData JDBC driver for JD Edwards is easy to integrate with Java Web applications. This article shows how to efficiently connect to JD Edwards data in Jetty by configuring the driver for connection pooling. You will configure a JNDI resource for JD Edwards in Jetty.

Configure the JDBC Driver for Salesforce as a JNDI Data Source

Follow the steps below to connect to Salesforce from Jetty.

  1. Enable the JNDI module for your Jetty base. The following command enables JNDI from the command-line:

    
    java -jar ../start.jar --add-to-startd=jndi
    
  2. Add the CData and license file, located in the lib subfolder of the installation directory, into the lib subfolder of the context path.
  3. Declare the resource and its scope. Enter the required connection properties in the resource declaration. This example declares the JD Edwards data source at the level of the Web app, in WEB-INF\jetty-env.xml.

    
    
    <Configure id='jdedwardsdemo' class="org.eclipse.jetty.webapp.WebAppContext">
        <New id="jdedwardsdemo" class="org.eclipse.jetty.plus.jndi.Resource">
        <Arg><Ref refid="jdedwardsdemo"/></Arg>
        <Arg>jdbc/jdedwardsdb</Arg>
        <Arg>
          <New class="cdata.jdbc.jdedwards.JDEdwardsDriver">
            <Set name="url">jdbc:jdedwards:</Set>
            <Set name="URL">https://your-jde-environment-app.example.com</Set>
            <Set name="User">admin</Set>
            <Set name="Password">myPassword</Set>
          </New>
        </Arg>
      </New>
    </Configure>
    

    The driver connects to JD Edwards through your Application Interface Services (AIS) Server. Set the following connection properties:

    • URL: The base HTTPS URL of your AIS Server (e.g., https://jde-ais.example.com:8300).
    • User: Your JD Edwards username.
    • Password: Your JD Edwards password.
    • Environment (optional): The JD Edwards environment to use (e.g., PD920 for production or DV920 for development). If not specified, the AIS Server's default environment is used.
    • Role (optional): The JD Edwards role for the session. If not specified, the AIS Server's default role is used.
    • DeviceName (optional): An identifier for the connecting device or application, used for auditing and logging on the AIS Server.
    • Jasserver (optional): The specific Java Application Server (JAS) instance to route requests through, useful in clustered environments.

    Choosing Which Data Is Exposed

    JD Edwards organizes tables and business views by System Code, and the driver exposes each System Code as its own schema. Use these properties to control which schemas are available:

    • DataModel: One or more ERP modules (comma-separated) whose System Codes are exposed as schemas, or All to expose every System Code in the connected instance. Defaults to FinancialManagement.
    • SystemCodes: A comma-separated list of additional System Codes to expose alongside those from DataModel (e.g., 42,43).

    When you connect, the driver sends your credentials to the AIS Server to obtain a session token and caches it. The driver requests a new token automatically before the session expires.

  4. Configure the resource in the Web.xml:

    
    
      jdbc/jdedwardsdb
      javax.sql.DataSource
      Container
    
    
  5. You can then access JD Edwards with a lookup to java:comp/env/jdbc/jdedwardsdb:

    
    InitialContext ctx = new InitialContext();
    DataSource myjdedwards = (DataSource)ctx.lookup("java:comp/env/jdbc/jdedwardsdb");
    

More Jetty Integration

The steps above show how to configure the driver in a simple connection pooling scenario. For more use cases and information, see the Working with Jetty JNDI chapter in the Jetty documentation.

Ready to get started?

Download a free trial of the JD Edwards Driver to get started:

 Download Now

Learn more:

JD Edwards Icon JD Edwards JDBC Driver

Rapidly create and deploy powerful Java applications that integrate with JD Edwards data including AccountLedger, ProposalofPayment, ContractRevenueSummary, EmployeeEnrollment, RentIncreaseAmounts, and more!