Получение ClassNotFoundException после обновления карафа с 4.0.4 до 4.1.7 - PullRequest
1 голос
/ 19 марта 2019

Мы создали команду karaf с помощью org.apache.karaf.shell.api.action.Action.

public class MyCommandIpl implements MyCommand {
    @Override
    public executeCOmmand() {someObj.execute;
    }
}

Она отлично работала с версией karaf 4.0.4.Но когда мы обновили версию karaf до 4.1.7, горячее развертывание этого пакета вызывает следующие исключения:

java.lang.IllegalArgumentException: Bean class not found com.subhash.command.MyCommandIpl
    at org.apache.aries.jpa.blueprint.impl.JpaComponentProcessor.handleComponent(JpaComponentProcessor.java:99)
    at org.apache.aries.jpa.blueprint.impl.JpaComponentProcessor.process(JpaComponentProcessor.java:77)
    at org.apache.aries.blueprint.container.BlueprintContainerImpl.processProcessors(BlueprintContainerImpl.java:549)
    at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:394)
    at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:275)
    at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:300)
    at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:269)
    at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:265)
    at org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:255)
    at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500)
    at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433)
    at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725)
    at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463)
    at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422)
    at org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1179)
    at org.apache.felix.framework.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:730)
    at org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:485)
    at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4579)
    at org.apache.felix.framework.Felix.startBundle(Felix.java:2174)
    at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998)
    at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260)
    at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233)
    at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:520)
    at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365)
    at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316)
Caused by: java.lang.ClassNotFoundException: com.subhash.command.MyCommandIpl not found by deadlock-test-tool [507]
    at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1639)
    at org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80)
    at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1927)
    at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:978)
    at org.apache.aries.jpa.blueprint.impl.JpaComponentProcessor.handleComponent(JpaComponentProcessor.java:97)
    ... 24 more

Там, где у pom ниже данных

build>
       <plugins>
           <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-jar-plugin</artifactId>
               <version>${maven.jar.plugin.version}</version>
               <configuration>
                   <excludes>
                       <exclude>**/log4j.xml</exclude>
                   </excludes>
               </configuration>
           </plugin>
           <plugin>
               <groupId>org.apache.felix</groupId>
               <artifactId>maven-bundle-plugin</artifactId>
               <extensions>true</extensions>
               <configuration>
                   <instructions>
                       <Karaf-Commands>com.subhash.command*</Karaf-Commands>
                       <_removeheaders>Import-Service,Export-Service</_removeheaders>
                   </instructions>
               </configuration>
           </plugin>
       </plugins>
   </build>

Пожалуйста, помогите!

...