5

我正在将代码从 JBoss 5.1 升级到 JBoss 7.1,如果这些方法没有在资源适配器中显式实现,它会失败。我了解每个人的概念,并且了解两者之间的合同。我不是在问如何实施它们或它们的含义。我特别问为什么必须为 Java EE 6 代码(在本例中为 JBoss AS 7.1)实现它们。

是否有充分的理由对它们进行大量思考,或者仅仅拥有以下内容就足够了:

boolean equals(Object obj) { return super.equals(obj) ; }
int hashCode() { return super.hashCode() ; }
4

1 回答 1

1

我认为这是因为以下

在这里结帐ManagedConnectionFactory

看到这是一个接口,有equals()hashCode()方法。所以Basic java,第一个实现接口的具体类必须定义接口的所有方法。你的资源适配器必须实现哪个,所以它必须定义这些方法

参考资源适配器需要在这里实现 ManagedConnectionFactory。

根据上述问题,根据 JCA 1.6 规范,我们需要为

A resource adapter must provide implementations of the following interfaces:

javax.resource.spi.ManagedConnectionFactory
javax.resource.spi.ManagedConnection
javax.resource.spi.ManagedConnectionMetaData

1.5不是这种情况

这就是为什么它在验证期间给出错误

JCA 验证器在 1.6 版本中变得更加严格,因此出现了错误。

关于这一点没有什么很清楚,互联网上有很多关于同一问题的问题和帖子。我发现最好的解释是提供连接工厂的“要求”。

此外,如果您需要绕过错误,您将需要切换到 JCA 1.5 或禁用 1.6

于 2012-10-19T08:10:35.510 回答