Knowledgebase:
Advisory (31/01/2019): Tomcat 9.0 Startup Issue - Internal Server Error for Workflow 5
Posted by Aly Essa, Last modified by Aly Essa on 07 February 2019 10:15 AM

Overview

When deploying Workflow 5.0.x on Tomcat 9.0 an "HTTP Status 500 - Internal Server Error" is displayed after every restart of the Tomcat web server. The following exception is displayed in the browser:

Tomcat9 HTTP 500

Searchable Stack Trace:


Type Exception Report

Message AuthConfigFactory error: java.lang.reflect.InvocationTargetException

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

java.lang.SecurityException: AuthConfigFactory error: java.lang.reflect.InvocationTargetException
     javax.security.auth.message.config.AuthConfigFactory.getFactory(AuthConfigFactory.java:85)
     org.apache.catalina.authenticator.AuthenticatorBase.findJaspicProvider(AuthenticatorBase.java:1239)


java.lang.SecurityException: org.xml.sax.SAXNotRecognizedException: Feature: http://apache.org/xml/features/allow-java-encodings
     org.apache.catalina.authenticator.jaspic.PersistentProviderRegistrations.loadProviders(PersistentProviderRegistrations.java:65)
     org.apache.catalina.authenticator.jaspic.AuthConfigFactoryImpl.loadPersistentRegistrations(AuthConfigFactoryImpl.java:345)

Environment

FileCatalyst Workflow v5.x
Tomcat 9.0

Resolution

The error displayed above can be resolved by modifying the catalina.properties file which is located inside the installation directory of the Tomcat 9.0 web server. Use the following steps to apply the solution:

  1. Shutdown the Tomcat 9.0 web server.
  2. Using a text editor open the catalina.properties file. It is usually located in /install-path-to-tomcat/conf/. Make a copy of this file before you continue further.
  3. At the very top of the file add the following properties:

    • javax.xml.parsers.DocumentBuilderFactory = com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
    • javax.xml.transform.TransformerFactory = com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl
    • javax.xml.parsers.SAXParserFactory = com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl
    • javax.xml.datatype.DatatypeFactory = com.sun.org.apache.xerces.internal.jaxp.datatype.DatatypeFactoryImpl

  4. Please note that the properties above are case sensitive. Once these properties have been added to the top of the file you can save and close this file.
  5. Start the Tomcat web server.