2014-08-28 55 views
0

我正在玩Adobe adobe cq和scala,因此我能够编写scala服务并将其部署到osgi容器。Adob​​e CQ/AEM akka集成

后来我试着用阿卡以下tutorial整合,我收到以下错误

28.08.2014 12:23:45.656 *ERROR* [0:0:0:0:0:0:0:1 [1409217825642] POST /system/console/bundles/352 HTTP/1.1] cqse-httpservice %bundles.pluginTitle: Cannot start (org.osgi.framework.BundleException: Activator start error in bundle com.aem.twitter-aem [352].) org.osgi.framework.BundleException: Activator start error in bundle com.aem.twitter-aem [352]. 
    at org.apache.felix.framework.Felix.activateBundle(Felix.java:2184) 
    at org.apache.felix.framework.Felix.startBundle(Felix.java:2052) 
    at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955) 
    at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:942) 
    at org.apache.felix.webconsole.internal.core.BundlesServlet.doPost(BundlesServlet.java:364) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
    at org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:526) 
    at org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:450) 
    at org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:96) 
    at org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:79) 
    at org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:42) 
    at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:49) 
    at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33) 
    at org.apache.sling.i18n.impl.I18NFilter.doFilter(I18NFilter.java:127) 
    at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:88) 
    at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:76) 
    at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47) 
    at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33) 
    at org.apache.felix.http.sslfilter.internal.SslFilter.doFilter(SslFilter.java:55) 
    at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:88) 
    at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:76) 
    at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47) 
    at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33) 
    at org.apache.wink.osgi.JaxRsFilter.doFilter(JaxRsFilter.java:80) 
    at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:88) 
    at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:76) 
    at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47) 
    at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33) 
    at com.adobe.granite.license.impl.LicenseCheckFilter.doFilter(LicenseCheckFilter.java:179) 
    at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:88) 
    at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:76) 
    at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47) 
    at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33) 
    at org.apache.sling.security.impl.ReferrerFilter.doFilter(ReferrerFilter.java:263) 
    at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:88) 
    at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:76) 
    at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47) 
    at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33) 
    at org.apache.sling.engine.impl.log.RequestLoggerFilter.doFilter(RequestLoggerFilter.java:75) 
    at org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:88) 
    at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:76) 
    at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47) 
    at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33) 
    at org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48) 
    at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39) 
    at org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:67) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
    at com.day.j2ee.servletengine.ServletRuntimeEnvironment.service(ServletRuntimeEnvironment.java:250) 
    at com.day.j2ee.servletengine.RequestDispatcherImpl.doFilter(RequestDispatcherImpl.java:321) 
    at com.day.j2ee.servletengine.RequestDispatcherImpl.service(RequestDispatcherImpl.java:340) 
    at com.day.j2ee.servletengine.RequestDispatcherImpl.service(RequestDispatcherImpl.java:383) 
    at com.day.j2ee.servletengine.ServletHandlerImpl.process(ServletHandlerImpl.java:335) 
    at com.day.j2ee.servletengine.HttpListener$Worker.run(HttpListener.java:644) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.NoClassDefFoundError: Could not initialize class akka.actor.LightArrayRevolverScheduler$TaskQueue 
    at akka.actor.LightArrayRevolverScheduler.<init>(Scheduler.scala:298) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at akka.actor.ReflectiveDynamicAccess$$anonfun$createInstanceFor$2.apply(DynamicAccess.scala:78) 
    at scala.util.Try$.apply(Try.scala:191) 
    at akka.actor.ReflectiveDynamicAccess.createInstanceFor(DynamicAccess.scala:73) 
    at akka.actor.ReflectiveDynamicAccess$$anonfun$createInstanceFor$3.apply(DynamicAccess.scala:84) 
    at akka.actor.ReflectiveDynamicAccess$$anonfun$createInstanceFor$3.apply(DynamicAccess.scala:84) 
    at scala.util.Success.flatMap(Try.scala:230) 
    at akka.actor.ReflectiveDynamicAccess.createInstanceFor(DynamicAccess.scala:84) 
    at akka.actor.ActorSystemImpl.createScheduler(ActorSystem.scala:675) 
    at akka.actor.ActorSystemImpl.<init>(ActorSystem.scala:575) 
    at akka.actor.ActorSystem$.apply(ActorSystem.scala:141) 
    at akka.actor.ActorSystem$.apply(ActorSystem.scala:125) 
    at akka.osgi.OsgiActorSystemFactory.createActorSystem(OsgiActorSystemFactory.scala:33) 
    at akka.osgi.ActorSystemActivator.start(ActorSystemActivator.scala:42) 
    at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645) 
    at org.apache.felix.framework.Felix.activateBundle(Felix.java:2134) 
    ... 54 more 

它抛出NoClassDefFoundError的,但我可以看到在Scheduler.scala该类文件

+0

有时候,一个类已经是osgi框架包的一部分,但没有导出/可见。您可以尝试将导致问题的软件包添加到“sling.properties”中的“org.osgi.framework.bootdelegation” – Thomas 2014-08-28 10:31:29

+0

它没有帮助 – yurko 2014-08-28 11:24:27

回答

0

如果添加sun.miscorg.osgi.framework.bootdelegationsling.properties没有为您工作,请尝试添加以下OSGI片段人为因素作为依赖项:

<dependency> 
    <groupId>com.github.livesense</groupId> 
    <artifactId>org.liveSense.fragment.sun.misc</artifactId> 
    <version>1.0.5</version> 
</dependency> 

该软件包使用sun.misc软件包扩展了System Bundle导出列表,这样OSGi软件包可以引用Sun的misc实现,而不需要OSGi框架本身以非便携方式提供它。

http://mvnrepository.com/artifact/com.github.livesense/org.liveSense.fragment.sun.misc

换言之,该片段附接到系统bundle并修改出口,使得sun.misc包由其他束暴露进行导入。默认情况下,框架包仅导出java.*javax.*包。对于Groovy/Scala/Akka中的某些动态和低级语言功能,sun.misc包是必需的。