Entorno
AEM 6.x
Problema
Algunos paquetes de OSGi no se pueden iniciar en la instancia de AEM. Cuando los usuarios intentan iniciar los paquetes que fallan, aparece un error similar al que se muestra a continuación:
30.12.2016 13:11:44.069 *ERROR* [qtp1529861461-2584] org.apache.felix.http.jetty %bundles.pluginTitle: Cannot start (org.osgi.framework.BundleException: Uses constraint violation. Unable to resolve resource com.adobe.cq.dam.cq-scene7-imaging [com.adobe.cq.dam.cq-scene7-imaging [436](R 436.3)] because it is exposed to package 'javax.activation' from resources org.apache.felix.framework [org.apache.felix.framework [0](R 0)] and org.apache.sling.javax.activation [org.apache.sling.javax.activation [11](R 11.0)] via two dependency chains. Chain 1: com.adobe.cq.dam.cq-scene7-imaging [com.adobe.cq.dam.cq-scene7-imaging [436](R 436.3)] import: (osgi.wiring.package=javax.activation) | export: osgi.wiring.package: javax.activation org.apache.felix.framework [org.apache.felix.framework [0](R 0)] Chain 2: com.adobe.cq.dam.cq-scene7-imaging [com.adobe.cq.dam.cq-scene7-imaging [436](R 436.3)] import: (osgi.wiring.package=javax.mail) | export: osgi.wiring.package=javax.mail; uses:=javax.activation javax.mail [javax.mail [209](R 209.0)] import: (osgi.wiring.package=javax.activation) | export: osgi.wiring.package: javax.activation org.apache.sling.javax.activation [org.apache.sling.javax.activation [11](R 11.0)] Unresolved requirements: [[com.adobe.cq.dam.cq-scene7-imaging [436](R 436.3)] osgi.wiring.package; (osgi.wiring.package=javax.mail)]) org.osgi.framework.BundleException: Uses constraint violation. Unable to resolve resource com.adobe.cq.dam.cq-scene7-imaging [com.adobe.cq.dam.cq-scene7-imaging [436](R 436.3)] because it is exposed to package 'javax.activation' from resources org.apache.felix.framework [org.apache.felix.framework [0](R 0)] and org.apache.sling.javax.activation [org.apache.sling.javax.activation [11](R 11.0)] via two dependency chains. Chain 1: com.adobe.cq.dam.cq-scene7-imaging [com.adobe.cq.dam.cq-scene7-imaging [436](R 436.3)] import: (osgi.wiring.package=javax.activation) | export: osgi.wiring.package: javax.activation org.apache.felix.framework [org.apache.felix.framework [0](R 0)] Chain 2: com.adobe.cq.dam.cq-scene7-imaging [com.adobe.cq.dam.cq-scene7-imaging [436](R 436.3)] import: (osgi.wiring.package=javax.mail) | export: osgi.wiring.package=javax.mail; uses:=javax.activation javax.mail [javax.mail [209](R 209.0)] import: (osgi.wiring.package=javax.activation) | export: osgi.wiring.package: javax.activation org.apache.sling.javax.activation [org.apache.sling.javax.activation [11](R 11.0)] Unresolved requirements: [[com.adobe.cq.dam.cq-scene7-imaging [436](R 436.3)] osgi.wiring.package; (osgi.wiring.package=javax.mail)] at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4111) at org.apache.felix.framework.Felix.startBundle(Felix.java:2117) at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998) at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:984) at org.apache.felix.webconsole.internal.core.BundlesServlet.doPost(BundlesServlet.java:365) at javax.servlet.http.HttpServlet.service(HttpServlet.java:644) at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) at org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:567) at org.apache.felix.webconsole.internal.servlet.OsgiManager$3.run(OsgiManager.java:465) at java.security.AccessController.doPrivileged(Native Method) at org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:461) at org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:85) at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:79) at com.adobe.granite.license.impl.LicenseCheckFilter.doFilter(LicenseCheckFilter.java:308) at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135) at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:74) at org.apache.felix.http.sslfilter.internal.SslFilter.doFilter(SslFilter.java:89) at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135) at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:74) at org.apache.sling.security.impl.ReferrerFilter.doFilter(ReferrerFilter.java:290) at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135) at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:74) at org.apache.sling.i18n.impl.I18NFilter.doFilter(I18NFilter.java:129) at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135) at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:74) at org.apache.sling.featureflags.impl.FeatureManager.doFilter(FeatureManager.java:116) at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135) at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:74) at org.apache.sling.engine.impl.log.RequestLoggerFilter.doFilter(RequestLoggerFilter.java:75) at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135) at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:74) at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:124) at org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:61) at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
Causa
Hay exportaciones OSGi duplicadas del mismo paquete de Java con versiones superpuestas, como se menciona en el error.
Resolución
Lea cuidadosamente el mensaje de registro que le indica exactamente qué paquetes de OSGi están exportando el mismo paquete Java, como se muestra a continuación:
“está expuesto al paquete 'javax.activation' de los recursos org.apache.felix.framework [org.apache.felix.framework [0](R 0)] y org.apache.sling.javax.activation [org.apache.sling.javax.activation [11](R 11.0)] a través de dos cadenas de dependencia”
Por lo tanto, hay dos paquetes que exportan javax.activation:
- paquete del marco Apache Felix org.apache.felix.framework-
- org.apache.sling.javax.activation- suministro de paquete de sling
Investigaciones posteriores muestran que el paquete de Sling pertenece a AEM y que la exportación del marco de javax.activation no es válida. Las exportaciones de paquetes de marcos pueden originarse a partir de lo siguiente:
- Parámetro JVM para la delegación de booleano: Dorg.osgi.framework.bootdelegation
- Un paquete de extensión del marco
- Configuración de las propiedades conf/sling.properties de AEM org.osgi.framework.system.capabilities.extra y org.osgi.framework.bootdelegation
Si alguna de esas configuraciones se modifica para agregar una exportación para javax.activation, esto causaría el problema.
Inicia sesión en tu cuenta