You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "Anthony Wood (Jira)" <ji...@apache.org> on 2023/02/07 00:45:00 UTC

[jira] [Commented] (KARAF-6210) NoClassDefFoundError: org/apache/karaf/shell/api/action/Action when starting Karaf

    [ https://issues.apache.org/jira/browse/KARAF-6210?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17684982#comment-17684982 ] 

Anthony Wood commented on KARAF-6210:
-------------------------------------

I have found this to be due to a bundle start-level inversion:
 * framework assembly, "framework" feature contains:
{{<bundle start-level="11">mvn:org.apache.karaf.config/org.apache.karaf.config.core/${project.version}</bundle>}}
 * standard assembly, "shell" feature contains:
{{<bundle start-level="30">mvn:org.apache.karaf.shell/org.apache.karaf.shell.core/${project.version}</bundle>}}

The config.core bundle depends on {{org.apache.karaf.shell.api.action}} from the shell.core bundle, yet has a start-level of 30 > 11.  When I manually set shell.core's level to 11, the ClassNotFoundException disappears on startup. 

> NoClassDefFoundError: org/apache/karaf/shell/api/action/Action when starting Karaf
> ----------------------------------------------------------------------------------
>
>                 Key: KARAF-6210
>                 URL: https://issues.apache.org/jira/browse/KARAF-6210
>             Project: Karaf
>          Issue Type: Bug
>          Components: karaf
>    Affects Versions: 4.2.4, 4.3.2
>         Environment: Stock Karaf 4.2.4 on Windows 10 with latest Oracle JDK 8.
>            Reporter: Amichai Rothman
>            Assignee: Jean-Baptiste Onofré
>            Priority: Major
>         Attachments: karaf_command_not_found.log
>
>
> When starting karaf using equinox and some bundle in the deploy folder, many shell commands (such as bundle:* and others) are not recognized, and the log shows NoClassDefFoundError: org/apache/karaf/shell/api/action/Action. Some commands don't work, but others (e.g. shell:*) do.
> This happens consistently on Windows 10, but not on Linux, not sure why.
>  
> Steps to recreate:
> 1. Extract stock Karaf 4.2.4.
> 2. In etc/config.properties change karaf.framework=felix to karaf.framework=equinox.
> 3. Place org.apache.aries.transaction.blueprint-2.2.0.jar (from maven) in deploy folder. This is not the only bundle it happens with, just a public one I found for this example. From several I tried, some recreated the issue and some did not. The bundle is not resolved due to missing dependencies.
> 4. Start Karaf.
> 5. Try to run bundle:list and it'll say command not found. Or look at the karaf log and see "java.lang.NoClassDefFoundError: org/apache/karaf/shell/api/action/Action". Use shell completion to see that some commands are available but others are not.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)