Pregunta

Hemos estado utilizando un JCA para interactuar con un recurso de red de bajo nivel desde dentro de WebSphere, sin embargo tenemos un requisito para poder acceder al mismo recurso de red externa de Tomcat (es decir, no en un entorno administrado). La comunicación de la red y diseños de protocolos es muy detallado, por lo que preferimos no copiar / pegar varios miles de líneas de código (y luego tener que mantener por separado).

A partir de la lectura de la especificación JCA, supuestamente hay un poco de apoyo para ejecutar el código en un entorno no administrado (como Tomcat). Por desgracia, no tengo idea de lo las interfaces tienen que hacer, o cómo llamar a ellos desde fuera de un entorno administrado (la especificación es bastante vaga).

¿Hay ejemplos de implementación por ahí que muestran cómo modificar la JCA para ser utilizable en un entorno no administrado?

Gracias!

¿Fue útil?

Solución

Tuvimos caso similar, donde se desarrolló un conector para el acceso al almacenamiento WebDav externa, y queríamos utilizar también desde una aplicación independiente (no administrado).

Creo que la forma más fácil es resolver esto a nivel de diseño, y organizar el código de una manera que lógica de la base del conector JCA es agnóstica y se puede reutilizar fácilmente. A continuación, se puede envolver con este código JCA-específica que expone el conector al AS. Podría probablemente incluso ser envasado en tarro de dos -. Eso es, al menos, la solución que elegimos (pero empaquetado todo en uno .jar)

De lo contrario, un conector JCA es el "pegamento" entre las siguientes tres partes:

  1. el servidor de aplicaciones
  2. el EIA
  3. el componente de aplicación.

Debería ser posible simular los AS con una aplicación ligera de las clases necesarias, y luego usar el conector JCA directamente.

Una de las tareas principales del AS con respecto a un conector JCA es la gestión de la agrupación de conexiones, y por lo que recuerdo, la interfaz correspondiente que a continuación, debe aplicar es ConnectionManager.

conector

La JCA recibir una referencia a un ConnectionManager, pero la implementación es AS-específica. Escritura de una aplicación ligera que proporciona la agrupación rudimentaria (o ninguna asunción en absoluto) parece factible.

I había escrito una vez al secuencia diagrama de mecanismo de la asignación de conexión . Tal vez le resultará útil. Otra interfaz es ResourceAdapter donde se define el arranque / apagado, pero que es fácil de invocar manualmente.

(Probablemente hay un poco más que eso, y que, por supuesto, depende de cuáles son sus usos conector JCA. Por ejemplo, si se utiliza Work y la WorkManager, entonces se vuelve mucho más complicado de simulacro. La misma observación si la conector es transaccional. sin embargo, no parece ser el caso.)

De lo contrario, creo que la primavera tiene cierto apoyo a JCA, puede valer la pena echar un vistazo cómo lo hicieron.

A partir de la lectura de la especificación JCA, hay supuestamente algún apoyo para ejecutar el código en un entorno no administrado

¿Se puede hablar de la parte específica de la especificación que usted se refiere alrededor?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top