2012-09-10 13 views
5

Estoy trabajando para actualizar el código de JBoss 5.1 a JBoss 7.1 y falla si estos métodos no se implementan explícitamente en los adaptadores de recursos. Entiendo el concepto de cada uno, y sé sobre el contrato entre los dos. No estoy preguntando cómo implementarlos o qué significan. Pregunto específicamente por qué DEBEN implementarse para el código de Java EE 6 (en este caso, JBoss AS 7.1).¿Por qué Java EE 6 requiere que equals() y hashCode() se implementen para los adaptadores de recursos?

¿Hay una buena razón para poner un montón de pensamiento en ellos, o es suficiente tener simplemente:

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

¿Dónde se ve que los que se requieren? –

+0

Al inicio. Lo sentimos, la primera vez que publicamos, presionamos enter cuando escribimos las etiquetas y publicamos la pregunta. Solo editado. –

+0

Interesante, parece que hay muchos éxitos de Google para este problema ('" Un ResourceAdapter debe implementar un "método booleano público igual (Objeto)". ') Pero no hay explicaciones reales _por qué_ esto es obligatorio. –

Respuesta

1

Creo que esto es debido a la siguiente

la caja ManagedConnectionFactory aquí.

vea esto es una interfaz y tiene equals() y hashCode() métodos. Entonces Basic java, la primera clase concreta que implementa una interfaz debe definir todos los métodos de la interfaz. Que su adaptador de recursos debe implementar, por lo que tiene que definir estos métodos

consulte A resource adapter needs to implement ManagedConnectionFactory aquí.

De acuerdo con la pregunta anterior, de acuerdo con la especificación JCA 1.6 necesitamos proveer aplicación de

A resource adapter must provide implementations of the following interfaces: 

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

que no era el caso con 1,5

Así que es por eso que da error durante la validación

El validador JCA se ha vuelto más estricto con la versión 1.6, por lo tanto, el error.

Nada es muy claro acerca de esto, hay muchas preguntas y publicaciones en internet sobre el mismo problema. La mejor explicación posible que encontré fue el "requisito" de proporcionar una fábrica de conexiones.

También en caso de tener que pasar por alto el error, o bien tendrá que cambiar a JCA 1.5 o desactivar el 1,6

Cuestiones relacionadas