diff --git a/src/main/java/org/apache/tomcat/jakartaee/ClassConverter.java b/src/main/java/org/apache/tomcat/jakartaee/ClassConverter.java
index 1ef8993..9b3cbd9 100644
--- a/src/main/java/org/apache/tomcat/jakartaee/ClassConverter.java
+++ b/src/main/java/org/apache/tomcat/jakartaee/ClassConverter.java
@@ -118,16 +118,14 @@
                     if (newString != str) {
                         // Since this is runtime conversion, the idea is to only convert to
                         // Jakarta EE specification classes that exist in the container 
-                        String[] split = newString.split(";");
+                        String[] split = newString.split(";|<");
                         for (String current : split) {
                             int pos = current.indexOf("jakarta/");
                             if (pos >= 0) {
-                                boolean found = false;
-                                try {
-                                    loader.loadClass(current.substring(pos).replace('/', '.'));
-                                    found = true;
-                                } catch (Exception e) {}
-                                if (!found) {
+                                if (loader.getResource(current.substring(pos) + ".class") == null) {
+                                    if (logger.isLoggable(Level.FINE)) {
+                                        logger.log(Level.FINE, sm.getString("classConverter.skipName", current.substring(pos)));
+                                    }
                                     // Cancel the replacement as the replacement does not exist
                                     String originalFragment = current.replace("jakarta/", "javax/");
                                     newString = newString.replace(current, originalFragment);
diff --git a/src/main/resources/org/apache/tomcat/jakartaee/LocalStrings.properties b/src/main/resources/org/apache/tomcat/jakartaee/LocalStrings.properties
index 3614cfc..e46a8d8 100644
--- a/src/main/resources/org/apache/tomcat/jakartaee/LocalStrings.properties
+++ b/src/main/resources/org/apache/tomcat/jakartaee/LocalStrings.properties
@@ -15,6 +15,7 @@
 
 classConverter.converted=Migrated class [{0}]
 classConverter.noConversion=No conversion necessary for [{0}] 
+classConverter.skipName=Skip conversion of class [{0}] as it is not accessible to the classloader
 
 migration.archive.complete=Migration finished for archive [{0}]
 migration.archive.memory=Migration starting for archive [{0}] using in memory copy
