jboss fuse camel 应用程序中 spring beans 上的 ClassNotFoundException

ClassNotFoundException on spring beans inside jboss fuse camel application

我正在尝试创建一个基于 spring 的保险丝集成,进行外部 soap 调用。

在独立 java 应用程序中使用代码工作正常,但在我的 Fuse Integration 项目中导入它时,出现以下错误:

...
Caused by: java.lang.ClassNotFoundException: org.springframework.beans.factory.InitializingBean not found by org.apache.servicemix.bundles.spring-ws-core [439]

我不知道从哪里开始调试这个。

以下是我的 pom 的相关部分:

    <dependencies>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-spring</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-spring-ws</artifactId>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
    </dependency>
</dependencies>


<build>
    <plugins>
        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <version>${version.maven-bundle-plugin}</version>
            <extensions>true</extensions>
            <configuration>
                <instructions>
                    <Bundle-SymbolicName>myBundle</Bundle-SymbolicName>
                    <Bundle-Name>Empty Camel Spring Example [myBundle]</Bundle-Name>
                    <DynamicImport-Package>*</DynamicImport-Package>
                    <Import-Package>*,org.springframework.beans.factory</Import-Package>
                </instructions>
            </configuration>
        </plugin>
    </plugins>
</build>

我还仔细检查了 spring 组件是否加载到保险丝中:

在这一点上,我只是不知道该怎么做才能让它工作! 非常感谢您的帮助!

编辑: 通过 bundle imports 检查显示: 这倾向于证实

org.springframework.beans.factory.InitializingBean

已加载!

事实上这里有以下错误:https://issues.jboss.org/browse/ENTESB-6856 已经修复并将通过 6.3.0 R4(将在这几天发布)提供。

由于您使用的是 Fuse 6.3 187,我强烈建议您遵循他们的补丁周期并定期应用更新(可以在此处查看时间表:https://access.redhat.com/articles/2939351)。

如果您够勇敢,也可以试用内部版本 (http://repository.jboss.org/nexus/content/groups/ea/org/jboss/fuse/jboss-fuse-karaf/6.3.0.redhat-280/),但是这些版本将不受支持,除非它们是官方补丁发布的一部分。