fei long created KARAF-7966:
-------------------------------
Summary: Start Apache Karaf with a feature that can not loads a
web WAR bundle
Key: KARAF-7966
URL: https://issues.apache.org/jira/browse/KARAF-7966
Project: Karaf
Issue Type: Bug
Components: karaf
Affects Versions: 4.4.3
Reporter: fei long
When I start Apache Karaf with a feature that loads a web WAR bundle, the
prerequisite flag has been stetted as described in
KARAF-3361(https://issues.apache.org/jira/browse/KARAF-3361?jql=project%20%3D%20KARAF%20AND%20text%20~%20war)
:
<feature name="viewer" version="2.0.0">
<feature prerequisite="true">war</feature>
<bundle
start-level="87">webbundle:mvn:com.test/viewer-war/2.0.0/war?Web-ContextPath=/app/viewer</bundle>
</feature>
But the following error occasionally occurs (not always):
Caused by: java.io.IOException: Could not download
[webbundle:file:/C:/Program%20Files/xxxx/karaf/system/viewer-war/2.0.0/viewer-war-2.0.0.war?Web-ContextPath=/app/viewer&]
at
org.apache.karaf.features.internal.download.impl.SimpleDownloadTask.download(SimpleDownloadTask.java:92)
~[?:?]
at
org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60)
~[?:?]
... 6 more
Caused by: java.net.MalformedURLException: Unknown protocol: webbundle
at java.net.URL.<init>(Unknown Source) ~[?:?]
at java.net.URL.<init>(Unknown Source) ~[?:?]
at java.net.URL.<init>(Unknown Source) ~[?:?]
at
org.apache.karaf.features.internal.download.impl.SimpleDownloadTask.download(SimpleDownloadTask.java:63)
~[?:?]
at
org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60)
~[?:?]
... 6 more
Caused by: java.lang.IllegalStateException: Unknown protocol: webbundle
at
org.apache.felix.framework.URLHandlersStreamHandlerProxy.parseURL(URLHandlersStreamHandlerProxy.java:373)
~[?:?]
at java.net.URL.<init>(Unknown Source) ~[?:?]
at java.net.URL.<init>(Unknown Source) ~[?:?]
at java.net.URL.<init>(Unknown Source) ~[?:?]
at
org.apache.karaf.features.internal.download.impl.SimpleDownloadTask.download(SimpleDownloadTask.java:63)
~[?:?]
at
org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60)
~[?:?]
... 6 more
]
Changing the value of [featuresBootAsynchronous] in the
org.apache.karaf.features.cfg configuration file into [true] could solve the
[Unknown protocol: webbundle] error.
However, the change brings a new issue: A feature may be loaded twice during
Karaf starts, which can cause the start of Karaf service to fail.
One noticeable symptom of this issue is identical log messages appear twice
during startup:
[
2025-04-11 02:34:21.720+0900,INFO,,<<<SVF02>>>,,,,"Adding features:
aries-blueprint/[4.4.3,4.4.3],feature/[4.4.3,4.4.3],framework/[4.4.3,4.4.3],jaas/[4.4.3,4.4.3],wrap/[2.6.12,2.6.12]",
2025-04-11 02:34:21.721+0900,INFO,,<<<SVF02>>>,,,,"Adding features:
aries-blueprint/[4.4.3,4.4.3],feature/[4.4.3,4.4.3],framework/[4.4.3,4.4.3],jaas/[4.4.3,4.4.3],wrap/[2.6.12,2.6.12]",
]
Due to these duplicate feature activations, leaving featuresBootAsynchronous
set to true is not a viable option.
How can I reliably resolve the [Unknown protocol: webbundle] error when loading
a feature with a web WAR bundle, without enabling featuresBootAsynchronous?
--
This message was sent by Atlassian Jira
(v8.20.10#820010)