Additional form and application design notes for IBM
® Forms Server – API:
Parent topic: Configuring
- The Viewer and API cannot read forms that have a UTF-8 byte-order mark (BOM). Attempting to do so will produce the following error: Unable to load form: Invalid document structure.
To prevent this problem: If you use a text editor to edit your forms, configure your editor so it does not add a BOM to UTF-8 documents. (See your text editor's documentation for details.)
To remove a BOM from a form: Open the form in the Designer and save it.
- If you are using a server application that notarizes signatures (that is, you are using the Authenticated Clickwrap or HMAC signature engine), when the user submits a signed form to the server, the CryptoAPI digital certificate may display a prompt on the server. Because the prompt is displayed on the server, where no person can respond to it, the server (or a thread on the server) may appear to hang.
- If you use Mozilla-based web browsers, you should set up your server modules to specify that the web browser clear its cache before it posts a form submission. Some versions of Mozilla-based browsers cache posts. As a result, if a post of a form is interrupted for some reason and you submit the form a second time, the browser sends the cached (and incomplete) first post.
- VBScript does not correctly support output parameters. Because of this, you must set all output parameters to null.
In cases in which you would normally use vbNull, you must instead use "1", which is the constant value of vbNull. If you do not use "1", the function you are calling will not work correctly.
- When building a C application that uses the API on AIX®, Linux™, or Solaris, ensure that you link with the libpe_cc.so library.
- The C API and the COM API require Java™ to perform XML Digital Signature operations.
- Under Solaris, you must link with the -Blocal linker option (or equivalent). This makes all of the symbols within the program local, so that loaded shared libraries cannot resolve against those symbols. If this linker flag is not given, and the application is using the Java support, one of the shared libraries loaded by the Java VM resolves against symbols defined in libpe_cc.so and causes a segmentation fault when that function is called.