If you plan to build custom applications that invoke LiveCycle services via its API, you should include references to the LiveCycle client libraries in your project. Also remember to configure the project in such a way that these libraries (JAR files) will be exported and thus included in the WAR or EAR files of the application.
These client library JAR files can be found under the \LiveCycle_ES_SDK\client-libs\ folder of both your Workbench (client desktop) or server installations. For example, if you installed LiveCycle ES server to /opt/adobe/livecycle8/ on AIX, these library JARs will be available at /opt/adobe/livecycle8/LiveCycle_ES_SDK/client-libs/. All are platform-agnostic except adobe-utilities.jar which is application server-specific. The platform-independent ones can be found under the folder /common/.
These client JARs are named in such a way as to indicate their functionality. For example, to call the Forms ES API, you need to include adobe-forms-client.jar You also need other JARs in addtion to this, such as adobe-livecycle-client.jar. Since it only requires 2.9 MB for all of the JARs in the /common/ folder, you can play it safe and include ALL of them in your project to be exported.
For a simple servlet that calls renderPDFForm(), the following imports are required:
To understand what these import statements really accomplish, use jar, WinZip, WinRAR, or similar tool to open and extract the adobe-forms-client.jar to C:\TEMP\. Navigate to C:\TEMP\com\adobe\livecycle\formsservice\client\ and you will find the FormsResult.class file (see first import statement).
Similarly, do the same for adobe-livecycle-client.jar and you will see the Document.class file in C:\TEMP\com\adobe\idp\ (see import statement #7) and the ServiceClientFactory.class in C:\TEMP\com\adobe\idp\dsc\clientsdk\ (see import statement #9).
In fact, to determine which JAR file contains a particular class, use a grep tool such as BareGrep and let it loose on \LiveCycle_ES_SDK\client-libs\