Connect to UKG Pro WFM Data from a Connection Pool in Jetty
The CData JDBC driver for UKG Pro WFM is easy to integrate with Java Web applications. This article shows how to efficiently connect to UKG Pro WFM data in Jetty by configuring the driver for connection pooling. You will configure a JNDI resource for UKG Pro WFM in Jetty.
Configure the JDBC Driver for Salesforce as a JNDI Data Source
Follow the steps below to connect to Salesforce from Jetty.
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- Add the CData and license file, located in the lib subfolder of the installation directory, into the lib subfolder of the context path.
-
Declare the resource and its scope. Enter the required connection properties in the resource declaration. This example declares the UKG Pro WFM data source at the level of the Web app, in WEB-INF\jetty-env.xml.
<Configure id='ukgprowfmdemo' class="org.eclipse.jetty.webapp.WebAppContext"> <New id="ukgprowfmdemo" class="org.eclipse.jetty.plus.jndi.Resource"> <Arg><Ref refid="ukgprowfmdemo"/></Arg> <Arg>jdbc/ukgprowfmdb</Arg> <Arg> <New class="cdata.jdbc.api.APIDriver"> <Set name="url">jdbc:api:</Set> <Set name="Profile">C:\profiles\UKGProWFM.apip</Set> <Set name="AuthScheme">OAuthPassword</Set> <Set name="ProfileSettings">'Host</Set> <Set name="User">your_username</Set> <Set name="Password">your_password</Set> <Set name="'"></Set> <Set name="OAuthClientId">your_client_id</Set> <Set name="OAuthClientSecret">your_client_secret</Set> </New> </Arg> </New> </Configure>Start by setting the Profile connection property to the location of the UKGProWFM Profile on disk (e.g. C:\profiles\UKGProWFM.apip). Next, set the ProfileSettings connection property to the connection string for UKGProWFM (see below).
UKGProWFM API Profile Settings
UKG Pro Workforce Management uses OAuth 2.0 with the Resource Owner Password Credentials grant (grant_type=password) to authorize access to the API. Unlike most OAuth-based profiles, this does not use a browser redirect/authorization-code step: the driver exchanges your UKG Pro WFM username, password, client ID, and client secret directly for an access token.
Set the following connection properties to authenticate:
- AuthScheme: Set this to OAuthPassword.
- Host: Set this to the hostname of your UKG Pro Workforce Management datacenter/tenant (for example, yourcompany.mykronos.com). Do not include the protocol (https://) or a trailing slash.
- OAuthClientId: Set this to the client ID issued for your UKG Pro Workforce Management OAuth application.
- OAuthClientSecret: Set this to the client secret issued for your UKG Pro Workforce Management OAuth application.
- User: Set this to your UKG Pro Workforce Management username.
- Password: Set this to your UKG Pro Workforce Management password.
Access tokens are obtained from https://{Host}/api/authentication/access_token. Refresh tokens issued by UKG Pro Workforce Management expire after 7 days; if a refresh attempt fails because the refresh token itself has expired, the driver must re-authenticate with your User/Password credentials to obtain a new access token.
-
Configure the resource in the Web.xml:
jdbc/ukgprowfmdb javax.sql.DataSource Container -
You can then access UKG Pro WFM with a lookup to java:comp/env/jdbc/ukgprowfmdb:
InitialContext ctx = new InitialContext(); DataSource myukgprowfm = (DataSource)ctx.lookup("java:comp/env/jdbc/ukgprowfmdb");
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.