IBM Support

java.lang.ClassNotFoundException: org.apache.cxf.io.DelayedCachedOutputStreamCleaner after upgrading Websphere Application Server to 9.0.5.27

Troubleshooting


Problem

Background:

  • WebSphere Application Server uses Apache CXF core as the default engine for JAX-RS 2.0 Java EE Specification support
  • Apache CXF temp files are created for large attachments, uploaded as part of a multipart POST request which exceeds the default org.apache.cxf.io.CachedOutputStream.Threshold. The default value is 128K for CachedOutputStream and 64K for CachedWriter.


Concern: Applications that embed their own Apache CXF libraries lower than version 3.5.10 may need guidance on:

  • Whether embedded CXF libraries require upgrading
  • Impact on application functionality and stability

 

Scope and Applicability: This technical note applies to:

WebSphere Application Server 9.0.5.27 and later versions
Applications that embed Apache CXF libraries lower than version 3.5.10 in their deployment packages

Symptom

JAX-RS 2.0 applications which embed older versions of Apache CXF libraries may encounter the following Exception

Caused by: java.lang.ClassNotFoundException: org.apache.cxf.io.DelayedCachedOutputStreamCleaner
at java.net.URLClassLoader.findClass(URLClassLoader.java:610)
at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:273)
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:950)
at org.apache.cxf.bus.extension.Extension.tryClass(Extension.java:164)

Cause

WebSphere Application Server 9.0.5.27 integrated APAR PH69248, which fixes a resource leak where temporary files created by Apache CXF JAX-RS 2.0 operations were not cleaned up until JVM restart.

Diagnosing The Problem

Impact Assessment:

  • Scenario 1: Applications Using WebSphere's Default JAX-RS 2.0 Engine without packaging CXF
    • no action
  • Scenario 2: Applications packaging Apache CXF, parent-first classloading
    • error
  • Scenario 3: Applications packaging Apache CXF, parent-last classloading
    • potentially no action, likely other issues

       

Resolving The Problem

WebSphere Application Server Specific Configuration Workarounds:

 

Name : com.ibm.ws.classloader.server.alwaysProtectedResources

Value:  META-INF/cxf/bus-extensions.txt

 

Important Note: IBM's recommends Applications to use the JAXRS engine provided with WebSphere Application Server to take advantage of full support and avoid embedding application specific Apache CXF libraries

Document Location

Worldwide

[{"Type":"MASTER","Line of Business":{"code":"LOB77","label":"Automation Platform"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSAW57","label":"WebSphere Application Server Network Deployment"},"ARM Category":[{"code":"a8m50000000CdG2AAK","label":"WebSphere Application Server traditional-All Platforms-\u003EWeb Services-\u003EJAXRS WebService Issues"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"and future releases"}]

Document Information

Modified date:
19 April 2026

UID

ibm17269870