com.akamai.edgegrid.signer Не может быть решена

Встреча с проблемой, которая сводит меня с ума. Внедрение аутентификации Amakai Edgegrid в AEM (6.0 SP3) и предотвращение запуска моего основного пакета служб, поскольку это не пакет OSGi.

Точно такая же проблема, как отмечено в этой проблеме, но это ничего не решает, так как я никогда не включал область для зависимости с самого начала.

    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>4.3.2</version>
    </dependency>
    <dependency>
        <groupId>com.akamai.edgegrid</groupId>
        <artifactId>edgegrid-signer-core</artifactId>
        <version>2.1.0</version>
    </dependency>
    <dependency>
        <groupId>com.akamai.edgegrid</groupId>
        <artifactId>edgegrid-signer-apache-http-client</artifactId>
        <version>2.1.0</version>
    </dependency>

com.akamai.edgegrid.signer - не может быть разрешен com.akamai.edgegrid.signer.apachehttpclient - не может быть разрешен

Журнал ошибок..

ОШИБКА [qtp1187594825-933] org.apache.felix.http.jetty %bundles.pluginTitle: Невозможно начать (org.osgi.framework.BundleException: неразрешенное ограничение в комплекте com.aem.common-service [478]: невозможно разрешить 478.21: отсутствует требование [478.21] osgi.wiring.package; (osgi.wiring.package=com.akamai.edgegrid.signer)) org.osgi.framework.BundleException: неразрешенное ограничение в комплекте com.aem.common-service [478]: Невозможно решить 478.21: отсутствует требование [478.21] osgi.wiring.package; (osgi.wiring.package = com.akamai.edgegrid.signer) в org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3980) в org.apache.felix.framework.Felix.startBundle(Felix.java:2043) в org.apache.felix.framework.BundleImpl.start(BundleImpl.java:976) в org.apache.felix.framework.BundleImpl.start(BundleImpl.java:963) в org.apache.felix.webconsole.internal.core.BundlesServlet.doPost(BundlesServlet.java:364) в javax.servlet.http.HttpServlet.service(HttpServlet.java:641) в javax.servlet.http.HttpServlet.service (HttpServ:7): 7.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:526) в org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:450) в org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:339) в org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:300) в org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:93) в org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:50) в org.apache.felix.http.base.internal.dispatch.HttpFilterin (HttpFilterChain.java:31) в org.apache.sling.i18n.impl.I18NFilter.doFilter(I18NFilter.java:128) в org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.jpg). 108) в org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:80) в org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter (InvocationFilterChain.j 46) в org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31) в org.apache.felix.http.sslfilter.internal.SslFilter.doFilter(SsllF89) в org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:108) в org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:80) в org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:46) в org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31) в org.apache.felss.lil.fl.doFilter(SslFilter.java:55) в org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:108) в org.apache.felix.http.base.internal.handler.FilterHandler. дескриптор (FilterHandler.java:80) в org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter (InvocationFilterChain.java:46) в org.apache.felix.http.base.internal.dispil.Chap. doFilter (HttpFilterChain.java:31) в org.apache.sling.security.impl.ReferrerFilter.doFilter(ReferrerFilter.java:290) в org.apache.felix.http.base.internal.handler.FilterHandler.doHandler. Filter Java: 108) в org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:80) в org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter (InvocationFilterC) n.java:46) в org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31) в com.adobe.granite.license.impl.LicenseCheckFilter.doFilter(LicenseCheckF: 300) в org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:108) в org.apache.felix.http.base.internal.handler.FilterHandler.handle (FilterHandler.java: 80) в org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter (InvocationFilterChain.java:46) в org.apache.felix.http.base.internal.dispatch.HttpFilterChain.ilFilter (JF) 31) в org.apache.sling.featureflags.impl.FeatureManager.doFilter(FeatureManager.java:115) в org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:108) в орг..apache.felix.http.base.internal.handler.FilterHandler.handle (FilterHandler.java:80) в org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter (InvocationFilterChain.java:46).apache.felix.http. base.internal.dispatch.HttpFilterChain.doFilter (HttpFilterChain.java:31) в org.apache.sling.engine.impl.log.RequestLoggerFilter.doFilter(RequestLoggerFilter.java:75) в org.apache.felase.ht. internal.handler.FilterHandler.doHandle (FilterHandler.java:108) в org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:80) в org.apache.felix.http.base. internal.dispatch.InvocationFilterChain.doFilter (InvocationFilterChain.java:46) в org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter (HttpFilterChain.java:31tt.ix.base.j.aseb.internal.handler.FilterHandler.handle(FilterHandler.java:84) в org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter (InvocationFilterChain.java:46) в org.apache.felix.http.base. internal.dispatch.HttpFilterChain.doFilter (HttpFilterChain.java:31) в org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:76) в org.apache.felase.ht.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:49) в org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:67) в javax.servlet.http.HttpServlet.service (HttpServlet.j. 722) в org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684) в org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501) в org.eclipser.jty.SessionHandler.doHandle(SessionHandler.java:229) в org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086) в org.eclipse.jetty.servlet.ServletHandler.doSlet:let (28)) в org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) в org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020) в org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) в org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255) в org.eclipse.jetty.server.handra.Handler er.handle(HandlerWrapper.java:116) в org.eclipse.jetty.server.Server.handle(Server.java:370) в org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494) в org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982) в org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043) в org.ett.parp (HttpParser.java:865) по адресу org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240) по адресу org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHjjtec82) jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667) в org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) в org.eclipse.jetty.Uued..runJob(QueuedThreadPool.java:608) в org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) в java.lang.Thread.run(Thread.java:748)

Я также попытался использовать Export-Package и Embed-Dependency с помощью maven-bundle-plugin. Это, по-видимому, сначала решает проблему, но каскадно ведет к дополнительным проблемам, которые также препятствуют запуску основного пакета.

1 ответ

Мне удалось поработать с Мартином в Akamai, чтобы выпустить новую версию 4.0.0 зависимости edgegrid. Изменения устраняют ряд ненужных зависимостей, а также облегчают работу с maven-bundle-plugin для работы в OSGi.

Результирующая конфигурация maven-bundle-plugin для пакета, в котором используется эта зависимость.

        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <configuration>
                <instructions>
                    <Bundle-Activator>com.foo.common.service.Activator</Bundle-Activator>
                    <Export-Package>com.foo.common.service.*;com.google.zxing.*;com.akamai.edgegrid.*;version=${project.version}</Export-Package>
                    <Embed-Dependency>commons-lang3,ooxml-schemas,jackson-core,gson,sitemapgen4j,edgegrid-signer-apache-http-client</Embed-Dependency>
                    <!-- <Sling-Bundle-Resources>/var/classes</Sling-Bundle-Resources> <Sling-Initial-Content>SLINGINF/sling/servlets/;overwrite:=true;uninstall:=true;path:=/apps/sling/servlets,SLING-INF/public/;overwrite:=true;uninstall:=true;path:=/apps/public</Sling-Initial-Content> -->
                </instructions>
            </configuration>
        </plugin>

Как только это было добавлено, используя версию 4.0.0 зависимости edgegrid, мой пакет запустился.

Другие вопросы по тегам