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/),但是这些版本将不受支持,除非它们是官方补丁发布的一部分。
我正在尝试创建一个基于 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/),但是这些版本将不受支持,除非它们是官方补丁发布的一部分。