我正在使用Karaf部署一些骆驼路线。 我目前正在使用deploy文件夹。我的问题是,Karaf花费很长时间才能第一次启动我的deploy文件夹中的内容,我将在稍后列出。没有这些内容,启动速度将非常快。在随后的启动中,该错误不会出现。我通过启用调试的karaf.sh启动Karaf。
我正在使用这些文件进行配置。
org.apache.karaf.features.cfg
:
featuresRepositories = \
mvn:org.apache.karaf.features/standard/4.2.6/xml/features, \
mvn:org.apache.karaf.features/framework/4.2.6/xml/features, \
mvn:org.apache.karaf.features/enterprise/4.2.6/xml/features, \
mvn:org.apache.karaf.features/spring/4.2.6/xml/features, \
mvn:org.apache.camel.karaf/apache-camel/3.0.0-M1/xml/features, \
mvn:org.apache.activemq/activemq-karaf/5.15.9/xml/features
featuresBoot = \
(wrap)/2.6.1, \
instance/4.2.6, \
package/4.2.6, \
log/4.2.6, \
ssh/4.2.6, \
framework/4.2.6, \
system/4.2.6, \
eventadmin/4.2.6, \
feature/4.2.6, \
shell/4.2.6, \
management/4.2.6, \
service/4.2.6, \
jaas/4.2.6, \
deployer/4.2.6, \
diagnostic/4.2.6, \
bundle/4.2.6, \
config/4.2.6, \
kar/4.2.6, \
http-whiteboard/4.2.6, \
http/4.2.6, \
war/4.2.6 , \
camel/3.0.0-M1, \
camel-core/3.0.0-M1, \
camel-groovy/3.0.0-M1, \
camel-jackson/3.0.0-M1, \
camel-jms/3.0.0-M1, \
camel-jsonpath/3.0.0-M1, \
camel-jetty9/3.0.0-M1, \
camel-rest-swagger/3.0.0-M1, \
camel-swagger-java/3.0.0-M1, \
camel-http4/3.0.0-M1, \
camel-mongodb3/3.0.0-M1, \
camel-netty4/3.0.0-M1, \
activemq-broker/5.15.9
org.apache.karaf.features.xml
:
<blacklistedRepositories>
<repository>mvn:org.apache.karaf.features/framework/4.3.0-SNAPSHOT/xml/features</repository>
<repository>mvn:org.apache.karaf.features/standard/4.3.0-SNAPSHOT/xml/features</repository>
<repository>mvn:org.apache.karaf.features/standard/4.2.1-SNAPSHOT/xml/features</repository>
<repository>mvn:org.apache.karaf.features/standard/4.2.1/xml/features</repository>
<repository>mvn:org.ops4j.pax.web/pax-web-features/7.2.3/xml/features</repository>
<repository>mvn:org.apache.karaf.features/enterprise/4.3.0-SNAPSHOT/xml/features</repository>
<repository>mvn:org.apache.karaf.features/enterprise-legacy/4.3.0-SNAPSHOT/xml/features</repository>
<repository>mvn:org.apache.karaf.features/spring/4.3.0-SNAPSHOT/xml/features</repository>
<repository>mvn:org.apache.karaf.features/spring-legacy/4.3.0-SNAPSHOT/xml/features</repository>
</blacklistedRepositories>
我的deploy文件夹当前具有以下内容:
当我尝试启动Karaf时,我也收到此错误,实际上这是在第一次出现之后第二次出现:
java.lang.ArrayIndexOutOfBoundsException: 19
at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:576)
at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:494)
at aQute.bnd.osgi.Clazz.parseClassFileWithCollector(Clazz.java:483)
at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:473)
at aQute.bnd.osgi.Analyzer.analyzeJar(Analyzer.java:2177)
at aQute.bnd.osgi.Analyzer.analyzeBundleClasspath(Analyzer.java:2083)
at aQute.bnd.osgi.Analyzer.analyze(Analyzer.java:138)
at aQute.bnd.osgi.Analyzer.calcManifest(Analyzer.java:616)
at org.ops4j.pax.swissbox.bnd.BndUtils.createBundle(BndUtils.java:161)
at org.ops4j.pax.url.wrap.internal.Connection.getInputStream(Connection.java:83)
at java.net.URL.openStream(URL.java:1057)
at org.apache.karaf.features.internal.download.impl.SimpleDownloadTask.download(SimpleDownloadTask.java:77)
at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
错误仍然存在。启动Karaf之后,Karaf和我的骆驼路线可以正常工作,我只是不喜欢看到此错误。我的骆驼应用程序针对1.9是否有意义?升级将是一个巨大的过程,也许您可以在我要求定位到1.9之前从我提供的内容中看到一些东西。
答案 0 :(得分:0)
最有可能尝试安装一个(或多个)jar文件,该文件是Java 9+模块而不是OSGi捆绑软件。在这种情况下,Karaf尝试wrap it从中动态制作一个捆绑包。包装逻辑使用bnd分析jar文件。它可能取决于较旧的bnd
版本,该版本失败了,因为它无法解析Java 9+类(很可能是新引入的module-info.class
)。
要查找要包装的捆包,可以在Karaf中运行bundle:list -t 0 -u | grep "wrap:"
命令。
解决问题的一些方法是:
bnd
版本)