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
Надеюсь, это поможет вам в правильном направлении.