Index: trunk/ehcache/ehcache-core/src/main/java/net/sf/ehcache/management/ManagementServerLoader.java =================================================================== diff -u -N -r9092 -r9102 --- trunk/ehcache/ehcache-core/src/main/java/net/sf/ehcache/management/ManagementServerLoader.java (.../ManagementServerLoader.java) (revision 9092) +++ trunk/ehcache/ehcache-core/src/main/java/net/sf/ehcache/management/ManagementServerLoader.java (.../ManagementServerLoader.java) (revision 9102) @@ -107,7 +107,10 @@ */ public static void register(CacheManager cacheManager, String clientUUID, ManagementRESTServiceConfiguration managementRESTServiceConfiguration) { + ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader(); try { + // because some code in Jersey is using the TCCL to resolve some classes + Thread.currentThread().setContextClassLoader(RESOURCE_CLASS_LOADER); if (!MGMT_SVR_BY_BIND.containsKey(managementRESTServiceConfiguration.getBind())) { if (!MGMT_SVR_BY_BIND.isEmpty()) { String alreadyBound = MGMT_SVR_BY_BIND.keySet().iterator().next(); @@ -136,6 +139,9 @@ } else { throw new CacheException("Failed to instantiate ManagementServer.", e); } + } finally { + // setting back the appClassLoader as the TCCL + Thread.currentThread().setContextClassLoader(contextClassLoader); } } Index: trunk/ehcache/management-ehcache-impl/management-ehcache-common/src/main/java/com/terracotta/management/ApplicationEhCache.java =================================================================== diff -u -N -r9029 -r9102 --- trunk/ehcache/management-ehcache-impl/management-ehcache-common/src/main/java/com/terracotta/management/ApplicationEhCache.java (.../ApplicationEhCache.java) (revision 9029) +++ trunk/ehcache/management-ehcache-impl/management-ehcache-common/src/main/java/com/terracotta/management/ApplicationEhCache.java (.../ApplicationEhCache.java) (revision 9102) @@ -15,7 +15,7 @@ @Override public Set> getClasses() { Set> restResourcesClasses = new HashSet>(); - ServiceLoader loader = ServiceLoader.load(ApplicationEhCacheService.class); + ServiceLoader loader = ServiceLoader.load(ApplicationEhCacheService.class, ApplicationEhCacheService.class.getClassLoader()); for (ApplicationEhCacheService applicationEhCacheService : loader) { restResourcesClasses.addAll(applicationEhCacheService.getRestResourceClasses()); }