2010-05-03 3 views
0

Мы использовали JCA для взаимодействия с низкоуровневым сетевым ресурсом из WebSphere, однако у нас есть требование иметь доступ к тому же сетевому ресурсу извне от Tomcat (т.е. не в управляемой среде). Макеты сетей и протоколов очень многословны, поэтому мы скорее не будем копировать/вставлять несколько тысяч строк кода (а затем их необходимо поддерживать отдельно).Доступ к архитектуре Java Connector (JCA) из не управляемой среды

От чтения спецификации JCA предположительно поддерживается некоторая поддержка для выполнения кода в не управляемой среде (например, Tomcat). К сожалению, я понятия не имею, : интерфейсы должны делать или как вызывать их из-за пределов управляемой среды (спецификация довольно неопределенная).

Существуют ли примеры реализации, показывающие, как изменить JCA для использования в не управляемой среде?

Спасибо!

ответ

1

У нас был аналогичный корпус, где мы разработали разъем для доступа к внешнему хранилищу WebDav и хотели использовать его также из автономного приложения (не управляемого).

Я считаю, что самый простой способ - это решить это на уровне проектирования и организовать код таким образом, чтобы основная логика соединителя была JCA-агностикой и может быть легко использована повторно. Затем вы можете обернуть это кодом JCA, который предоставляет соединитель AS. Вероятно, его можно было бы даже упаковать в две банки - это, по крайней мере, решение, которое мы выбираем (но мы упаковали все в один .jar).

В противном случае, соединитель JCA является "клеем" между следующими тремя сторонами:

  1. сервером приложения
  2. ЗВОСА
  3. Заявлением компонентов.

Должно быть возможно смоделировать АС с легкой реализацией необходимых классов, а затем напрямую использовать разъем JCA.

Одно из основных заданий AS относительно соединителя JCA - управлять объединением соединений и, насколько я помню, соответствующий интерфейс, который вы должны реализовать, - ConnectionManager.

Разъем JCA получает ссылку на ConnectionManager, но реализация специфична для AS. Звучание легкой реализации, которая обеспечивает рудиментарный пул (или вообще отсутствие объединения), возможно.

Я написал один раз механизм sequence diagram of the connection allocation. Может быть, вы найдете это полезным. Другой интерфейс - ResourceAdapter, где вы определяете запуск/выключение, но это легко вызвать вручную.

(Возможно, это немного больше, и это, конечно, зависит от того, что использует ваш разъем JCA. Например, если он использует Work и WorkManager, тогда это становится намного сложнее насмехаться. соединитель является транзакционным, но это не похоже на ваш случай.)

В противном случае, я думаю, что Spring имеет некоторую поддержку JCA, возможно, стоит посмотреть, как они это сделали.

От чтения спецификации JCA, есть якобы некоторая поддержка для выполнения кода в неуправляемой среде

Вы можете назвать конкретную часть спецификации вы ссылаетесь о?

+0

Моя ссылка на спецификацию основана на различных подразделах, таких как 3.4, 5.3.8, 6.4.2 и т. П. В спецификации JCA 1.5. Спасибо за помощь. К сожалению, это похоже на наш код, который он слишком сильно намотал во всех неправильных местах управляемым частям спецификации. –

 Смежные вопросы

  • Нет связанных вопросов^_^