2017-04-04 44 views
0

我有一个多模块的Spring Boot项目。一个模块,'实体'包含Hibernate配置,包括Hazelcast L2缓存配置。这是一个.jar(不是Spring Boot)用于Hibernate抛出的Hazelcast L2缓存ClassNotFoundException

另一个模块是'web',它依赖于'实体',但是一个启动应用程序。

'实体' 具有以下依存关系:

<groupId>com.hazelcast</groupId> 
    <artifactId>hazelcast-hibernate5</artifactId> 
    <version>1.2</version> 

    <groupId>com.hazelcast</groupId> 
    <artifactId>hazelcast</artifactId> 
    <version>3.7.1</version> 

'hazelcast-hibernate5' 对hazelcast 3.5.5有管理的依赖,我排除。

当我运行'web'应用程序(Spring Boot)时,我得到了来自'实体'配置文件(其中声明L2缓存)的以下错误。我不使用XML,这是Java配置。

产生的原因:抛出java.lang.ClassNotFoundException:com.hazelcast.internal.serialization.DataSerializerHook

在Eclipse我搜索的“类型” &可以找到DataSerializerHook这是“实体”的依赖......作为预期。

我从hazelcast-hibernate5中排除hazelcast 3.5.5的原因是因为3.5.5 DataSerializerHook在com.hazelcast.nio.serialization中。在hazelcast 3.7.1中它的com.hazelcast.internal.serialization。最初,我得到了这个classCastException b/c。这现在已经解决了。

我在这里错过了什么?

回答

0

hazelcast-hibernate5版本1.2取决于Hazelcast版本3.7可以看到here您应该不需要在Maven配置中的任何排除项,以便能够将其与Hazelcast 3.7配合使用。在您的Maven配置中查找可能对先前的Hazelcast版本具有传递依赖性的依赖项。

您可以使用Maven dependency plugin或IDE的内置功能来显示可传递的Maven依赖关系。

相关问题