spring wso2 wso2esb spring-jdbc

spring - Mediador personalizado ClassNotFoundException TransactionSynchronization



wso2 wso2esb (2)

Realizo una clase de mediador personalizada que utiliza Spring jdbc para acceder a los datos de la base de datos.
Hago un jar de esa clase y lo despliego en WSO2_HOME / repository / components / lib.
Después de eso, agrego el siguiente archivo jar a la misma carpeta:
spring-jdbc.jar,
spring-tx.jar.

Pero cuando probé el mediador personalizado, hay un error "ClassNotFoundException org / springframework / transaction / support / TransactionSynchronization".

El problema es que estoy bastante seguro de que la clase "TransactionSynchronization" está disponible en spring-tx.jar. ¿Puede alguien ayudarme a solucionar este problema? :)


Una razón puede ser que haya dos paquetes en su ruta de clase que tengan la misma clase ''TransactionSynchronization''. ¿Puedes probar el siguiente?

  1. ¿Qué tienes en tu directorio WSO2_HOME / repository / components / dropins? Borre todos los archivos dentro de dropins y reinicie el servidor y vuelva a verificar el problema.

  2. Si el error persiste, intente eliminar spring-tx.jar de WSO2_HOME / repository / components / lib & WSO2_HOME / repository / components / dropins. Luego repite el servidor. Luego, verifica si estás obteniendo el mismo error o error diferente.


Estoy experimentando el mismo comportamiento. Tengo un mediador de primavera personalizado que llama a una base de datos para authNZ basada en roles. Estoy ejecutando esb v 4.7.0.

Descargué spring-tx-3.1.0.RELEASE.jar del repositorio de maven y lo copié en /usr/local/wso2/wso2esb-4.7.0/repository/components/lib en mi entorno, luego reinicié el ESB. Cuando emito solicitudes a mi servicio proxy, se produce la misma excepción de clase no encontrada.

Estaba examinando el contenido del contenedor hoy y cuando revisé el contenedor spring-tx en /usr/local/wso2/wso2esb-4.7.0/repository/components/lib, la clase presente:

jar tf spring-tx-3.1.0.RELEASE.jar | grep TransactionSynchronization org/springframework/transaction/support/TransactionSynchronization.class

Cuando hago lo mismo en /usr/local/wso2/wso2esb-4.7.0/repository/components/dropins después de reiniciar el archivo esb, la clase no está presente:

jar tf ../dropins/spring_tx_3.1.0.RELEASE_1.0.0.jar spring-tx-3.1.0.RELEASE.jar META-INF/ META-INF/p2.inf META-INF/MANIFEST.MF

Tenga en cuenta que el contenedor spring-tx no está incluido en el paquete OSGi después de reiniciar Synapse.

Investigaré más mañana, incluyendo la construcción de un paquete OSGi que contiene las dependencias Spring que necesito a través de Eclipse