【发布时间】:2015-02-13 06:40:42
【问题描述】:
我正在尝试在 Wildfly 8.2 上使用 Hazelcast。我举了一个简单的例子,但我得到了:
原因:java.lang.ClassCastException:com.hazelcast.jca.HazelcastConnectionImpl 无法转换为 com.hazelcast.jca.HazelcastConnection
来自
private HazelcastConnection getConnection() {
try {
return (HazelcastConnection)connectionFactory.getConnection();
} catch (ResourceException e) {
throw new RuntimeException("Error while getting Hazelcast connection", e);
}
}
在我的 pom.xml 中有
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast</artifactId>
<version>3.4</version>
</dependency>
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast-jca</artifactId>
<version>3.4</version>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-j2ee-connector_1.5_spec</artifactId>
<version>2.0.0</version>
<scope>provided</scope>
</dependency>
任何帮助将不胜感激
【问题讨论】:
-
听起来你在容器级别也有 hazelcast-jca,因为看起来你最终不得不使用不同的类加载器(我的猜测),因此你不能投射实现 HazelcastConnection[cl1] 的 HazelcastConnectionImpl[cl1]到 HazelcastConnection[cl2] 接口。
-
我假设您已将 Hazelcast 资源适配器部署到 WildFly 中?它是作为一个模块部署的吗?如果是这样,请尝试在您的 pom.xml 中将 Hazelcast 依赖项定义为“已提供”+您的应用程序应声明对 Hazelcast 模块的依赖项。
-
一开始是我提供的,但后来我得到了 ClassNotFound,然后我试图删除它。看起来它在部署时无法找到模块中的 jar,但在运行时都找到了 - 只是再次尝试提供 - 我得到 java.lang.NoClassDefFoundError: com/hazelcast/jca/HazelcastConnection
-
我确实喜欢这个 docs.hazelcast.org/docs/latest/manual/html/… ,但必须将
添加到 module.xml能够部署 rar 文件 -
通过保持为 hazelcast 依赖项提供的范围并在 WEB-INF 中的 jboss-deployment-structure.xml 中添加 hazelcast 模块的依赖项,使其工作
标签: java classcastexception hazelcast