У нас был аналогичный корпус, где мы разработали разъем для доступа к внешнему хранилищу WebDav и хотели использовать его также из автономного приложения (не управляемого).
Я считаю, что самый простой способ - это решить это на уровне проектирования и организовать код таким образом, чтобы основная логика соединителя была JCA-агностикой и может быть легко использована повторно. Затем вы можете обернуть это кодом JCA, который предоставляет соединитель AS. Вероятно, его можно было бы даже упаковать в две банки - это, по крайней мере, решение, которое мы выбираем (но мы упаковали все в один .jar).
В противном случае, соединитель JCA является "клеем" между следующими тремя сторонами:
- сервером приложения
- ЗВОСА
- Заявлением компонентов.
Должно быть возможно смоделировать АС с легкой реализацией необходимых классов, а затем напрямую использовать разъем JCA.
Одно из основных заданий AS относительно соединителя JCA - управлять объединением соединений и, насколько я помню, соответствующий интерфейс, который вы должны реализовать, - ConnectionManager
.
Разъем JCA получает ссылку на ConnectionManager
, но реализация специфична для AS. Звучание легкой реализации, которая обеспечивает рудиментарный пул (или вообще отсутствие объединения), возможно.
Я написал один раз механизм sequence diagram of the connection allocation. Может быть, вы найдете это полезным. Другой интерфейс - ResourceAdapter
, где вы определяете запуск/выключение, но это легко вызвать вручную.
(Возможно, это немного больше, и это, конечно, зависит от того, что использует ваш разъем JCA. Например, если он использует Work
и WorkManager
, тогда это становится намного сложнее насмехаться. соединитель является транзакционным, но это не похоже на ваш случай.)
В противном случае, я думаю, что Spring имеет некоторую поддержку JCA, возможно, стоит посмотреть, как они это сделали.
От чтения спецификации JCA, есть якобы некоторая поддержка для выполнения кода в неуправляемой среде
Вы можете назвать конкретную часть спецификации вы ссылаетесь о?
Моя ссылка на спецификацию основана на различных подразделах, таких как 3.4, 5.3.8, 6.4.2 и т. П. В спецификации JCA 1.5. Спасибо за помощь. К сожалению, это похоже на наш код, который он слишком сильно намотал во всех неправильных местах управляемым частям спецификации. –