diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
index 1826aa3..d2d4245 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
@@ -366,6 +366,10 @@
 
 			Class<T> c = innerClass;
 			ci = ClassInfo.of(c);
+			if (ci.isProxy()) {
+				ci = ci.getProxyFor();
+				innerClass = this.innerClass = ci.inner();
+			}
 
 			if (c.isPrimitive()) {
 				if (c == Boolean.TYPE)
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java
index 2e5760d..4f591a2 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java
@@ -216,28 +216,12 @@
 	 */
 	public ClassInfo resolved() {
 		if (Value.isType(t))
-			return of(Value.getParameterType(t));
-		return this;
+			return of(Value.getParameterType(t)).getProxiedClassInfo();
+		return getProxiedClassInfo();
 	}
 
-	/**
-	 * Identifies the inner target class when this class info represents a CGLIB proxy class.
-	 *
-	 * @param proxyFor The inner non-proxied class.
-	 * @return This object (for method chaining).
-	 */
-	public ClassInfo proxyFor(Class<?> proxyFor) {
-		this.proxyFor = ClassInfo.of(proxyFor);
-		return this;
-	}
-
-	/**
-	 * Returns the non-proxied inner class of a CGLIB proxy class.
-	 *
-	 * @return The non-proxied inner class of a CGLIB proxy class, or the inner class if it's not a proxy.
-	 */
-	public Class<?> getProxiedClass() {
-		return proxyFor == null ? c : proxyFor.inner();
+	private ClassInfo getProxiedClassInfo() {
+		return proxyFor == null ? this : proxyFor;
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
@@ -2093,6 +2077,24 @@
 	}
 
 	/**
+	 * Returns <jk>true</jk> if this class is a proxy for another class.
+	 *
+	 * @return <jk>true</jk> if this class is a proxy for another class.
+	 */
+	public boolean isProxy() {
+		return proxyFor != null;
+	}
+
+	/**
+	 * Returns the class info of the proxied class.
+	 *
+	 * @return The class info of the proxied class, or <jk>null</jk> if this class is not proxied.
+	 */
+	public ClassInfo getProxyFor() {
+		return proxyFor;
+	}
+
+	/**
 	 * Returns the number of dimensions if this is an array type.
 	 *
 	 * @return The number of dimensions if this is an array type, or <c>0</c> if it is not.
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestInfoProvider.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestInfoProvider.java
index 66871cf..b42a1e1 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestInfoProvider.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestInfoProvider.java
@@ -67,7 +67,7 @@
 
 		@SuppressWarnings("deprecation")
 		Builder(RestContext context) {
-			ClassInfo ci = ClassInfo.of(context.getResource().getClass());
+			ClassInfo ci = ClassInfo.of(context.getResource()).resolved();
 			for (RestResource r : ci.getAnnotationsParentFirst(RestResource.class)) {
 				if (! r.siteName().isEmpty())
 					siteName = r.siteName();
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
index fc26c55..2b353f5 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
@@ -3574,7 +3574,7 @@
 			VarResolverSession vrs = this.varResolver.createSession();
 			config = builder.config.resolving(vrs);
 
-			ClassInfo rci = ClassInfo.of(resource);
+			ClassInfo rci = ClassInfo.of(resource).resolved();
 
 			PropertyStore ps = getPropertyStore();
 
@@ -3664,7 +3664,7 @@
 
 			ClasspathResourceFinder rf = getInstanceProperty(REST_classpathResourceFinder, ClasspathResourceFinder.class, ClasspathResourceFinderBasic.class, resourceResolver, this);
 			useClasspathResourceCaching = getProperty(REST_useClasspathResourceCaching, boolean.class, true);
-			staticResourceManager = new ClasspathResourceManager(rci.getProxiedClass(), rf, useClasspathResourceCaching);
+			staticResourceManager = new ClasspathResourceManager(rci.inner(), rf, useClasspathResourceCaching);
 
 			consumes = getListProperty(REST_consumes, MediaType.class, parsers.getSupportedMediaTypes());
 			produces = getListProperty(REST_produces, MediaType.class, serializers.getSupportedMediaTypes());
@@ -3681,11 +3681,11 @@
 
 			MessageBundleLocation[] mbl = getInstanceArrayProperty(REST_messages, MessageBundleLocation.class, new MessageBundleLocation[0]);
 			if (mbl.length == 0)
-				msgs = new MessageBundle(rci.getProxiedClass(), "");
+				msgs = new MessageBundle(rci.inner(), "");
 			else {
-				msgs = new MessageBundle(mbl[0] != null ? mbl[0].baseClass : rci.getProxiedClass(), mbl[0].bundlePath);
+				msgs = new MessageBundle(mbl[0] != null ? mbl[0].baseClass : rci.inner(), mbl[0].bundlePath);
 				for (int i = 1; i < mbl.length; i++)
-					msgs.addSearchPath(mbl[i] != null ? mbl[i].baseClass : rci.getProxiedClass(), mbl[i].bundlePath);
+					msgs.addSearchPath(mbl[i] != null ? mbl[i].baseClass : rci.inner(), mbl[i].bundlePath);
 			}
 
 			this.fullPath = (builder.parentContext == null ? "" : (builder.parentContext.fullPath + '/')) + builder.getPath();
@@ -3728,7 +3728,7 @@
 					methodsFound.add(mi.getSimpleName() + "," + emptyIfNull(firstNonEmpty(a.name(), a.method())) + "," + fixMethodPath(a.path()));
 					try {
 						if (mi.isNotPublic())
-							throw new RestServletException("@RestMethod method {0}.{1} must be defined as public.", rci.getProxiedClass().getName(), mi.getSimpleName());
+							throw new RestServletException("@RestMethod method {0}.{1} must be defined as public.", rci.inner().getName(), mi.getSimpleName());
 
 						RestMethodContextBuilder rmcb = new RestMethodContextBuilder(resource, mi.inner(), this);
 						RestMethodContext sm = new RestMethodContext(rmcb);
@@ -3801,7 +3801,7 @@
 							addToRouter(routers, httpMethod, sm);
 						}
 					} catch (Throwable e) {
-						throw new RestServletException("Problem occurred trying to serialize methods on class {0}, methods={1}", rci.getProxiedClass().getName(), SimpleJsonSerializer.DEFAULT.serialize(methodsFound)).initCause(e);
+						throw new RestServletException("Problem occurred trying to serialize methods on class {0}, methods={1}", rci.inner().getName(), SimpleJsonSerializer.DEFAULT.serialize(methodsFound)).initCause(e);
 					}
 				}
 			}
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
index a755bd3..20c8871 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
@@ -212,7 +212,7 @@
 	 */
 	RestContextBuilder init(Object resource) throws ServletException {
 		this.resource = resource;
-		ClassInfo rci = ClassInfo.of(resourceClass);
+		ClassInfo rci = ClassInfo.of(resource).resolved();
 
 		Map<String,MethodInfo> map = new LinkedHashMap<>();
 		for (MethodInfo m : rci.getAllMethodsParentFirst()) {
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/SwaggerGenerator.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/SwaggerGenerator.java
index a24d9a6..1d2f4fb 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/SwaggerGenerator.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/SwaggerGenerator.java
@@ -102,7 +102,7 @@
 	@SuppressWarnings("deprecation")
 	public Swagger getSwagger() throws Exception {
 
-		ClassInfo rci = ClassInfo.of(resource.getClass());
+		ClassInfo rci = ClassInfo.of(resource).resolved();
 
 		rci.getSimpleName();
 
