Jruby Rails на Torquebox вызывает EJB-сервисы - классы моделей

Я хотел бы поиграть с Torquebox и иметь Rails (или, например, Sinatra) в качестве внешнего интерфейса, но у меня есть все мои сервисы и бизнес-уровень в EJB с CDI и JPA и всем этим.

1) Можно ли развернуть все это как одно приложение и использовать локальные вызовы для EJB

2) Если у меня есть Rails, я могу использовать модели (без ActiveRecord) просто для обмена данными с внешним интерфейсом. Как я могу вызвать EJB сервисы с такими моделями? Я имею в виду иметь:

def create
  user = User.new(params)
  userRepository = inject(Java::com.example.UserRepository)
  userRepository.create(user)  // this is java call
end

Как передать пользователя (модель jruby на вызов EJB)? Или я должен сделать

user = Java::com.example.User(params)

вместо простых рубиновых моделей.

По сути, я хотел бы иметь фронт в Ruby и остальную часть машины в стеке Java EE.

1 ответ

Интеграционные тесты TorqueBox имеют приложение, которое делает нечто подобное, см.:

https://github.com/torquebox/torquebox/tree/2x-dev/integration-tests/apps/rails3/twitter

Он загружает бин ApplicationScoped из lib/ejb.jarисточник которого можно найти по адресу:

https://github.com/goldmann/confitura-2011-torquebox-demo/tree/master/cdi

Надеюсь, это поможет вам в правильном направлении.

Другие вопросы по тегам