Application Servers with Open JDK 17.0.12+8 - Configuration Changes
This page details the configuration changes required on the hosted IBM WebSphere Liberty instance v24.0.08 and Apache Tomcat v9.0.89 to prevent the SOAP API call failures. Follow the below Instructions:
Instructions
For IBM WebSphere Liberty instance (version 24.0.08):
1. Open the server.xml file.
a. replace featureManager -
<featureManager>
<feature>mpConfig-1.3</feature>
<feature>jdbc-4.0</feature>
<feature>localConnector-1.0</feature>
<feature>adminCenter-1.0</feature>
</featureManager>
b. add the JVM arguments -
<javaRuntime id="defaultJavaRuntime">
<jvmEntries>
<jvmOptions>
<option>-Djavax.xml.soap.MessageFactory=com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl</option>
<option>-Djavax.xml.soap.SOAPFactory=com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPFactory1_1Impl</option>
<option>-Djavax.xml.soap.SOAPConnectionFactory=com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnectionFactory</option>
<option>-Djavax.xml.soap.MetaFactory=com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl</option>
<option>--add-exports java.xml/com.sun.org.apache.xml.internal.serialize=ALL-UNNAMED</option>
<option>--add-exports java.xml/com.sun.org.apache.xerces.internal.parsers=ALL-UNNAMED</option>
<option>--add-exports java.xml/com.sun.org.apache.xerces.internal.util=ALL-UNNAMED</option>
<option>--add-exports java.xml/com.sun.org.apache.xerces.internal.dom=ALL-UNNAMED</option>
<option>--add-exports java.xml/com.sun.org.apache.xerces.internal.dom.DocumentImpl=ALL-UNNAMED</option>
<option>--add-exports java.base/jdk.internal.ref=ALL-UNNAMED</option>
</jvmOptions>
</jvmEntries>
</javaRuntime>
c. Add classloader configuration.-
<application context-root="OCI_TCE_SQL_WAS04" type="ear" id="OCI_TCE_SQL_WAS04" location="OCI_TCE_SQL_WAS04.ear" name="OCI_TCE_SQL_WAS04">
<classloader delegation="parentLast"/>
</application>
2. Navigate to WEB-INF/lib and remove the following jars if they are present.
a. Remove el jars - javax.el-*.jar
b. Remove javax.servlet-api-*.jar
c. Remove javax.servlet-jsp-api-*.jar
3. Add JSTL 1.2 in <Liberty> /lib folder.
4. Restart the server.
For Apache Tomcat v9.0.89:
- Add saaj-impl-1.3.12.jar in <tomcat>/lib. You can download the file from here.
- Add JSTL 1.2 in <tomcat> /lib.
- Add the JVM arguments -
--add-exports java.xml/com.sun.org.apache.xml.internal.serialize=ALL-UNNAMED --add-exports java.xml/com.sun.org.apache.xerces.internal.parsers=ALL-UNNAMED,java.xml/com.sun.org.apache.xerces.internal.util=ALL-UNNAMED --add-exports=java.xml/com.sun.org.apache.xerces.internal.dom=ALL-UNNAMED --add-exports=java.xml/com.sun.org.apache.xerces.internal.dom.DocumentImpl=ALL-UNNAMED --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED