By default, VirtualViewer will use its built-in sample handler. This example contains that code that you can build your handler from. More information is available on the virtualviewer-file-content-handler-example GitHub repo. This example is provided as-is and should not be used in production.

API Documentation

The VirtualViewer API documentation is located here and here

Supported Versions

At the time this document was written, when using https://repo.snowbound.com/ as your Maven repository, we support version 5.6.0 and newer. If you require an older version, please visit our main support page at https://www.accusoft.com/support/.

Requirements

  • Java JDK 1.8 or newer
    • VirtualViewer 5.3 and 5.4 require JDK 11
  • Apache Maven
    • To make development easier, the mvn command should be part of your system PATH variable.
    • On most Linux distros, this will be added automatically if you install via the package manager.
    • On Windows, add the Maven bin directory to your PATH environmental variable.

Building

Before making any modifications, we recommend you run this command to make sure your system is in a sane state. Using the command line, run mvn clean verify. You will find the JAR(s) will output to target/deploy. If you prefer to use an IDE, you will need one that supports Maven based projects. We do not recommend any particular IDE as this is a personal preference.

Installing Your Handler

To install your new content handler, maven will output a JAR with the required additional dependencies to the target/deploy directory. If you are using VirtualViewer on Docker, copy all these files to the classes directory and update the web.xml to use your content handler. See the VirtualViewer Docker documentation for more information. If you are using a virtualviewer.war file, extract the WAR file, install the contenyd of deploy output to virtualviewer/WEB-INF/lib/ and update the contentHandlerClass in web.xml file in virtualviewer/WEB-INF (see below).

Configure web.xml

In web.xml, change the contentHandlerClass value to the name of your new content handler. In this example, we will use com.snowbound.virtualviewer.contenthandler.example.FileContentHandler