我想使用Torquebox,并以Rails(或例如Sinatra)作为前端,但是我所有的服务和业务层都包含在CDI和JPA等所有的EJB中。

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调用)?还是我应该做

用户= Java :: com.example.User(params)

而不是普通的红宝石模型。

基本上,我想在Ruby方面有先见之明,而在Java EE堆栈中则需要其他机器。

最佳答案

TorqueBox集成测试的应用程序执行类似的操作,请参阅:

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

它从lib/ejb.jar加载ApplicationScoped bean,其来源可在以下位置找到:

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

希望这能使您指出正确的方向。

08-19 10:41