In traditional Java EE applications user types are loaded by the same ClassLoader
as
CGLIB. This allows CGLIB to proxy package-protected types. In OSGi environments, user types and CGLIB will
most likely be packaged in separate bundles. This results in the user types and CGLIB being loaded by
different ClassLoaders
. This prevents CGLIB from proxying any package-protected types.
The workaround for this issue is to make all types that require proxying public.