我想使用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
希望这能使您指出正确的方向。